CallSite Caller; // Holds the call that called subframes.
// NULL if main func or debugger invoked fn
AllocaHolderHandle Allocas; // Track memory allocated by alloca
- std::vector<APInt*> APInts; // Track memory allocated for APInts
- APInt* getAPInt(uint32_t BitWidth) {
- APInt* Result = new APInt(BitWidth, 0);
- APInts.push_back(Result);
- return Result;
- }
- ~ExecutionContext() {
- while (!APInts.empty()) {
- delete APInts.back();
- APInts.pop_back();
- }
- }
};
// Interpreter - This class represents the entirety of the interpreter.
std::vector<Function*> AtExitHandlers;
public:
- Interpreter(Module *M);
+ explicit Interpreter(Module *M);
~Interpreter();
/// runAtExitHandlers - Run any functions registered by the program's calls to
/// create - Create an interpreter ExecutionEngine. This can never fail.
///
- static ExecutionEngine *create(ModuleProvider *M);
+ static ExecutionEngine *create(ModuleProvider *M, std::string *ErrorStr = 0);
/// run - Start execution with the specified function and arguments.
///