Mercurial > projects > ldc
changeset 1073:aa31e5592994
Work around llvm bug #3749 better, or not at all if using a fixed llvm revision.
author | Frits van Bommel <fvbommel wxs.nl> |
---|---|
date | Mon, 09 Mar 2009 13:29:25 +0100 |
parents | 802d508f66f1 |
children | d9820e08bb84 |
files | gen/main.cpp |
diffstat | 1 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/gen/main.cpp Mon Mar 09 03:44:11 2009 +0100 +++ b/gen/main.cpp Mon Mar 09 13:29:25 2009 +0100 @@ -845,11 +845,15 @@ delete llvmModules[i]; } - // workaround for llvm::Linker bug, see llvm #3749 +#if LLVM_REV < 66404 + // Workaround for llvm bug #3749 + // Not needed since LLVM r66404 (it no longer checks for this) llvm::GlobalVariable* ctors = linker.getModule()->getGlobalVariable("llvm.global_ctors"); - if (ctors) - while (ctors->getNumUses() > 0) - delete *ctors->use_begin(); + if (ctors) { + ctors->removeDeadConstantUsers(); + assert(ctors->use_empty()); + } +#endif m->deleteObjFile(); writeModule(linker.getModule(), filename);