From fe660397e14ecba84e792ada489f2bda7269b413 Mon Sep 17 00:00:00 2001 From: Andrew Lenharth Date: Thu, 28 Jul 2005 18:13:59 +0000 Subject: [PATCH] new is not a valid default anywhere, so make this pure virtual git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22542 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/MachineCodeEmitter.h | 7 ++----- lib/CodeGen/ELFWriter.cpp | 5 +++++ lib/CodeGen/MachineCodeEmitter.cpp | 7 +++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/include/llvm/CodeGen/MachineCodeEmitter.h b/include/llvm/CodeGen/MachineCodeEmitter.h index 59c5b614afe..f5ee2e62371 100644 --- a/include/llvm/CodeGen/MachineCodeEmitter.h +++ b/include/llvm/CodeGen/MachineCodeEmitter.h @@ -94,11 +94,8 @@ public: // virtual uint64_t getConstantPoolEntryAddress(unsigned Index) = 0; - // allocateGlobal - Allocate some space for a global variable. This is - // used by the JIT to allocate space in the global variable region. - virtual unsigned char* allocateGlobal(unsigned size, unsigned alignment) { - return new unsigned char[(size_t)size]; - } + // allocateGlobal - Allocate some space for a global variable. + virtual unsigned char* allocateGlobal(unsigned size, unsigned alignment) = 0; /// createDebugEmitter - Return a dynamically allocated machine /// code emitter, which just prints the opcodes and fields out the cout. This diff --git a/lib/CodeGen/ELFWriter.cpp b/lib/CodeGen/ELFWriter.cpp index 7963b658d66..cdbc13a20f1 100644 --- a/lib/CodeGen/ELFWriter.cpp +++ b/lib/CodeGen/ELFWriter.cpp @@ -85,6 +85,11 @@ namespace llvm { return 0; } + virtual unsigned char* allocateGlobal(unsigned size, unsigned alignment) { + assert(0 && "Globals not implemented yet!"); + return 0; + } + /// JIT SPECIFIC FUNCTIONS - DO NOT IMPLEMENT THESE HERE! void startFunctionStub(unsigned StubSize) { assert(0 && "JIT specific function called!"); diff --git a/lib/CodeGen/MachineCodeEmitter.cpp b/lib/CodeGen/MachineCodeEmitter.cpp index 3037cba2973..1090d762d7e 100644 --- a/lib/CodeGen/MachineCodeEmitter.cpp +++ b/lib/CodeGen/MachineCodeEmitter.cpp @@ -51,6 +51,9 @@ namespace { std::cout << " "; } + virtual unsigned char* allocateGlobal(unsigned size, unsigned alignment) + { return 0; } + uint64_t getConstantPoolEntryAddress(unsigned Num) { return 0; } uint64_t getCurrentPCValue() { return 0; } uint64_t getCurrentPCOffset() { return 0; } @@ -142,6 +145,10 @@ namespace { uint64_t getConstantPoolEntryAddress(unsigned Num) { return MCE.getConstantPoolEntryAddress(Num); } + + virtual unsigned char* allocateGlobal(unsigned size, unsigned alignment) + { return MCE.allocateGlobal(size, alignment); } + uint64_t getCurrentPCValue() { return MCE.getCurrentPCValue(); }