diff tools/binding/llvm/executionengine.d @ 1274:4ff9ab0d472c

Check in some old changes to the binding, from before I had commit access. - Add bindings for InsertValue and ExtractValue - Updates to use new APIs where they were renamed or removed. - Add generic error messages if LLVM didn't provide one. - Enable typesafe variadic arguments for GetGEP.
author Frits van Bommel <fvbommel wxs.nl>
date Mon, 27 Apr 2009 22:34:36 +0200
parents 1ba61de8796b
children
line wrap: on
line diff
--- a/tools/binding/llvm/executionengine.d	Mon Apr 27 22:33:17 2009 +0200
+++ b/tools/binding/llvm/executionengine.d	Mon Apr 27 22:34:36 2009 +0200
@@ -100,6 +100,8 @@
         {
             auto errmsg = from_stringz(err).dup;
             LLVMDisposeMessage(err);
+            if (errmsg.length == 0)
+                errmsg = "Error creating execution engine";
             throw new LLVMException(errmsg);
         }
         return new ExecutionEngine(ee);
@@ -113,6 +115,8 @@
         {
             auto errmsg = from_stringz(err).dup;
             LLVMDisposeMessage(err);
+            if (errmsg.length == 0)
+                errmsg = "Error creating interpreter";
             throw new LLVMException(errmsg);
         }
         return new ExecutionEngine(ee);
@@ -126,6 +130,8 @@
         {
             auto errmsg = from_stringz(err).dup;
             LLVMDisposeMessage(err);
+            if (errmsg.length == 0)
+                errmsg = "Error creating JIT";
             throw new LLVMException(errmsg);
         }
         return new ExecutionEngine(ee);
@@ -199,6 +205,8 @@
         {
             auto errmsg = from_stringz(err).dup;
             LLVMDisposeMessage(err);
+            if (errmsg.length == 0)
+                errmsg = "Error removing ModuleProvider from ExecutionEngine";
             throw new LLVMException(errmsg);
         }
         return Module.GetExisting(mod);