mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-16 12:24:03 +00:00
Make it explicit that ExecutionEngine takes ownership of the modules.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215967 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -30,9 +30,10 @@ static struct RegisterInterp {
|
||||
|
||||
extern "C" void LLVMLinkInInterpreter() { }
|
||||
|
||||
/// create - Create a new interpreter object. This can never fail.
|
||||
/// Create a new interpreter object.
|
||||
///
|
||||
ExecutionEngine *Interpreter::create(Module *M, std::string* ErrStr) {
|
||||
ExecutionEngine *Interpreter::create(std::unique_ptr<Module> M,
|
||||
std::string *ErrStr) {
|
||||
// Tell this Module to materialize everything and release the GVMaterializer.
|
||||
if (std::error_code EC = M->materializeAllPermanently()) {
|
||||
if (ErrStr)
|
||||
@ -41,15 +42,15 @@ ExecutionEngine *Interpreter::create(Module *M, std::string* ErrStr) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
return new Interpreter(M);
|
||||
return new Interpreter(std::move(M));
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Interpreter ctor - Initialize stuff
|
||||
//
|
||||
Interpreter::Interpreter(Module *M)
|
||||
: ExecutionEngine(M), TD(M) {
|
||||
|
||||
Interpreter::Interpreter(std::unique_ptr<Module> M)
|
||||
: ExecutionEngine(std::move(M)), TD(Modules.back().get()) {
|
||||
|
||||
memset(&ExitValue.Untyped, 0, sizeof(ExitValue.Untyped));
|
||||
setDataLayout(&TD);
|
||||
// Initialize the "backend"
|
||||
|
Reference in New Issue
Block a user