mirror of
https://github.com/ldc-developers/ldc.git
synced 2025-05-06 19:06:02 +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();
|
||||
#endif
|
||||
|
||||
std::string errormsg;
|
||||
#if LDC_LLVM_VER >= 303
|
||||
llvm::Linker linker(llvmModules[0]);
|
||||
for (size_t i = 1; i < llvmModules.size(); i++)
|
||||
{
|
||||
if(linker.linkInModule(llvmModules[i], llvm::Linker::DestroySource, &errormsg))
|
||||
error("%s", errormsg.c_str());
|
||||
delete llvmModules[i];
|
||||
}
|
||||
llvm::Module *dest = new llvm::Module(moduleName, context);
|
||||
llvm::Linker linker(dest);
|
||||
#else
|
||||
llvm::Linker linker("ldc", moduleName, context);
|
||||
#endif
|
||||
|
||||
std::string errormsg;
|
||||
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());
|
||||
delete llvmModules[i];
|
||||
}
|
||||
#endif
|
||||
|
||||
m->deleteObjFile();
|
||||
writeModule(linker.getModule(), filename);
|
||||
global.params.objfiles->push(const_cast<char*>(filename));
|
||||
|
||||
#if LDC_LLVM_VER >= 303
|
||||
delete llvmModules[0];
|
||||
delete dest;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue