diff --git a/gen/llvmhelpers.cpp b/gen/llvmhelpers.cpp index 0861196a..46ee4745 100644 --- a/gen/llvmhelpers.cpp +++ b/gen/llvmhelpers.cpp @@ -128,9 +128,16 @@ void DtoAssert(Module* M, Loc loc, DValue* msg) // file param // we might be generating for an imported template function - IrModule* irmod = getIrModule(M); - - args.push_back(DtoLoad(irmod->fileName)); + const char* cur_file = M->srcfile->name->toChars(); + if (loc.filename && strcmp(loc.filename, cur_file) != 0) + { + args.push_back(DtoConstString(loc.filename)); + } + else + { + IrModule* irmod = getIrModule(M); + args.push_back(DtoLoad(irmod->fileName)); + } // line param LLConstant* c = DtoConstUint(loc.linnum); @@ -794,7 +801,7 @@ void DtoConstInitGlobal(VarDeclaration* vd) if (vd->ir.initialized) return; vd->ir.initialized = gIR->dmodule; - Logger::println("DtoConstInitGlobal(%s) @ %s", vd->toChars(), vd->locToChars()); + Logger::println("DtoConstInitGlobal(%s) @ %s", vd->toChars(), vd->loc.toChars()); LOG_SCOPE; Dsymbol* par = vd->toParent(); diff --git a/gen/structs.cpp b/gen/structs.cpp index 019ffaaa..79d258cd 100644 --- a/gen/structs.cpp +++ b/gen/structs.cpp @@ -30,7 +30,7 @@ void DtoResolveStruct(StructDeclaration* sd) sd->ir.resolved = true; // log what we're doing - Logger::println("Resolving struct type: %s (%s)", sd->toChars(), sd->locToChars()); + Logger::println("Resolving struct type: %s (%s)", sd->toChars(), sd->loc.toChars()); LOG_SCOPE; // make sure type exists diff --git a/ir/irclass.cpp b/ir/irclass.cpp index 6525d457..bd3c2b1d 100644 --- a/ir/irclass.cpp +++ b/ir/irclass.cpp @@ -252,7 +252,7 @@ LLConstant * IrStruct::createClassDefaultInitializer() ClassDeclaration* cd = aggrdecl->isClassDeclaration(); assert(cd && "invalid class aggregate"); - IF_LOG Logger::println("Building class default initializer %s @ %s", cd->toPrettyChars(), cd->locToChars()); + IF_LOG Logger::println("Building class default initializer %s @ %s", cd->toPrettyChars(), cd->loc.toChars()); LOG_SCOPE; IF_LOG Logger::println("Instance size: %u", cd->structsize); diff --git a/ir/irtypeclass.cpp b/ir/irtypeclass.cpp index 2a784f0c..d55484b9 100644 --- a/ir/irtypeclass.cpp +++ b/ir/irtypeclass.cpp @@ -226,7 +226,7 @@ void IrTypeClass::addBaseClassData( const llvm::Type* IrTypeClass::buildType() { - IF_LOG Logger::println("Building class type %s @ %s", cd->toPrettyChars(), cd->locToChars()); + IF_LOG Logger::println("Building class type %s @ %s", cd->toPrettyChars(), cd->loc.toChars()); LOG_SCOPE; IF_LOG Logger::println("Instance size: %u", cd->structsize); diff --git a/ir/irtypestruct.cpp b/ir/irtypestruct.cpp index 806b4707..94127ce5 100644 --- a/ir/irtypestruct.cpp +++ b/ir/irtypestruct.cpp @@ -76,7 +76,7 @@ bool var_offset_sort_cb(const VarDeclaration* v1, const VarDeclaration* v2) const llvm::Type* IrTypeStruct::buildType() { IF_LOG Logger::println("Building struct type %s @ %s", - sd->toPrettyChars(), sd->locToChars()); + sd->toPrettyChars(), sd->loc.toChars()); LOG_SCOPE; // if it's a forward declaration, all bets are off, stick with the opaque