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;