Force initialize the runtime module in Module::genLLVMModule. It is required

for all non-trivial D modules anyway, so why load it lazily? This fixes
run/typeid_83.d (DtoDeclareTypeInfo expects runtime to be initialized)
This commit is contained in:
Christian Kamm
2009-03-28 20:01:37 +01:00
parent 0ef57dcfbe
commit c5a09c9deb
3 changed files with 7 additions and 3 deletions

View File

@@ -36,7 +36,9 @@ bool LLVM_D_InitRuntime()
Logger::println("*** Initializing D runtime declarations ***");
LOG_SCOPE;
LLVM_D_BuildRuntimeModule();
if (!M)
LLVM_D_BuildRuntimeModule();
return true;
}

View File

@@ -2585,8 +2585,8 @@ void obj_includelib(const char* lib)
void backend_init()
{
// now lazily loaded
//LLVM_D_InitRuntime();
// LLVM_D_InitRuntime is done in Module::genLLVMModule
// since it requires the semantic pass to be done
}
void backend_term()

View File

@@ -134,6 +134,8 @@ llvm::Module* Module::genLLVMModule(Ir* sir)
error("is missing 'class ClassInfo'");
fatal();
}
LLVM_D_InitRuntime();
// process module members
for (int k=0; k < members->dim; k++) {