From c1d969449404317d06fe7cbcdc3bd7933b250784 Mon Sep 17 00:00:00 2001 From: Frits van Bommel Date: Mon, 9 Mar 2009 13:29:25 +0100 Subject: [PATCH] Work around llvm bug #3749 better, or not at all if using a fixed llvm revision. --- gen/main.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gen/main.cpp b/gen/main.cpp index 779cad42..d14b3334 100644 --- a/gen/main.cpp +++ b/gen/main.cpp @@ -845,11 +845,15 @@ int main(int argc, char** argv) 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);