mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-16 04:43:14 +01:00
Switch some getModule to getCompilationModule to make sure templates are
emitted in the right module.
This commit is contained in:
@@ -646,7 +646,6 @@ void DtoDefineFunction(FuncDeclaration* fd)
|
||||
|
||||
// debug info
|
||||
if (global.params.symdebug) {
|
||||
Module* mo = fd->getModule();
|
||||
fd->ir.irFunc->diSubprogram = DtoDwarfSubProgram(fd);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user