mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-10 12:59:21 +03:00
Rewrite the llvm::Linker fix for LLVM 3.3.
The previous commit changed the behaviour a bit. This solution should have an identical result.
This commit is contained in:
parent
ebaa3f08b3
commit
41bbc8fbf5
1 changed files with 11 additions and 11 deletions
|
@ -1097,31 +1097,31 @@ int main(int argc, char** argv)
|
||||||
char* moduleName = m->toChars();
|
char* moduleName = m->toChars();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
std::string errormsg;
|
|
||||||
#if LDC_LLVM_VER >= 303
|
#if LDC_LLVM_VER >= 303
|
||||||
llvm::Linker linker(llvmModules[0]);
|
llvm::Module *dest = new llvm::Module(moduleName, context);
|
||||||
for (size_t i = 1; i < llvmModules.size(); i++)
|
llvm::Linker linker(dest);
|
||||||
{
|
|
||||||
if(linker.linkInModule(llvmModules[i], llvm::Linker::DestroySource, &errormsg))
|
|
||||||
error("%s", errormsg.c_str());
|
|
||||||
delete llvmModules[i];
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
llvm::Linker linker("ldc", moduleName, context);
|
llvm::Linker linker("ldc", moduleName, context);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
std::string errormsg;
|
||||||
for (size_t i = 0; i < llvmModules.size(); i++)
|
for (size_t i = 0; i < llvmModules.size(); i++)
|
||||||
{
|
{
|
||||||
if(linker.LinkInModule(llvmModules[i], &errormsg))
|
#if LDC_LLVM_VER >= 303
|
||||||
|
if (linker.linkInModule(llvmModules[i], llvm::Linker::DestroySource, &errormsg))
|
||||||
|
#else
|
||||||
|
if (linker.LinkInModule(llvmModules[i], &errormsg))
|
||||||
|
#endif
|
||||||
error("%s", errormsg.c_str());
|
error("%s", errormsg.c_str());
|
||||||
delete llvmModules[i];
|
delete llvmModules[i];
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
m->deleteObjFile();
|
m->deleteObjFile();
|
||||||
writeModule(linker.getModule(), filename);
|
writeModule(linker.getModule(), filename);
|
||||||
global.params.objfiles->push(const_cast<char*>(filename));
|
global.params.objfiles->push(const_cast<char*>(filename));
|
||||||
|
|
||||||
#if LDC_LLVM_VER >= 303
|
#if LDC_LLVM_VER >= 303
|
||||||
delete llvmModules[0];
|
delete dest;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue