Mercurial > projects > ldc
diff gen/toobj.cpp @ 1521:982eb70e83b2
Fix build for LLVM >= r74640
Some LLVM objects now take a 'Context' to make multi-threaded apps easier.
Since we're not multi-threaded it's safe to use llvm::getGlobalContext()
which gives us the same behavior as we had before.
author | Benjamin Kramer <benny.kra@gmail.com> |
---|---|
date | Fri, 03 Jul 2009 17:24:35 +0200 |
parents | 2292878925f4 |
children | ad7f2f1862d6 |
line wrap: on
line diff
--- a/gen/toobj.cpp Tue Jun 30 22:07:50 2009 +0200 +++ b/gen/toobj.cpp Fri Jul 03 17:24:35 2009 +0200 @@ -11,8 +11,12 @@ #include <fstream> #include "gen/llvm.h" +#include "gen/llvm-version.h" #include "llvm/Analysis/Verifier.h" #include "llvm/Bitcode/ReaderWriter.h" +#if LLVM_REV >= 74640 +#include "llvm/LLVMContext.h" +#endif #include "llvm/Module.h" #include "llvm/ModuleProvider.h" #include "llvm/PassManager.h" @@ -43,7 +47,6 @@ #include "gen/functions.h" #include "gen/irstate.h" #include "gen/llvmhelpers.h" -#include "gen/llvm-version.h" #include "gen/logger.h" #include "gen/optimizer.h" #include "gen/programs.h" @@ -94,7 +97,11 @@ // create a new ir state // TODO look at making the instance static and moving most functionality into IrModule where it belongs +#if LLVM_REV >= 74640 + IRState ir(new llvm::Module(mname, llvm::getGlobalContext())); +#else IRState ir(new llvm::Module(mname)); +#endif gIR = &ir; ir.dmodule = this;