Switch some getModule to getCompilationModule to make sure templates are

emitted in the right module.
This commit is contained in:
Christian Kamm
2009-02-08 18:51:32 +01:00
parent 7c93355672
commit 789eefd943
3 changed files with 4 additions and 9 deletions

View File

@@ -646,7 +646,6 @@ void DtoDefineFunction(FuncDeclaration* fd)
// debug info
if (global.params.symdebug) {
Module* mo = fd->getModule();
fd->ir.irFunc->diSubprogram = DtoDwarfSubProgram(fd);
}

View File

@@ -1563,9 +1563,10 @@ bool mustDefineSymbol(Dsymbol* s)
Module* M = DtoIsTemplateInstance(s);
// if it's a template instance, check the instantiating module
// not the module that defines the template
if (M)
if (M) {
return M == gIR->dmodule;
return s->getModule() == gIR->dmodule;
}
return s->getCompilationModule() == gIR->dmodule;
#endif
}

View File

@@ -533,11 +533,6 @@ void DtoResolveStruct(StructDeclaration* sd)
// set irstruct info
irstruct->packed = ispacked;
// defined in this module?
bool thisModule = false;
if (sd->getModule() == gIR->dmodule)
thisModule = true;
// methods, fields
Array* arr = sd->members;
for (int k=0; k < arr->dim; k++) {
@@ -647,7 +642,7 @@ void DtoConstInitStruct(StructDeclaration* sd)
gIR->structs.pop_back();
// emit typeinfo
if (sd->getModule() == gIR->dmodule && sd->llvmInternal != LLVMno_typeinfo)
if (sd->getCompilationModule() == gIR->dmodule && sd->llvmInternal != LLVMno_typeinfo)
DtoTypeInfoOf(sd->type, false);
}