diff libinterp/interp-core/jit-typeinfo.cc @ 15385:8ccb187b24e9

Erase partially created functions on JIT compilation failure (bug #37308) * pt-jit.cc (tree_jit::optimize): Verify module in debug mode. (jit_function_info::jit_function_info): Erase functions on failure.
author Max Brister <max@2bass.com>
date Fri, 14 Sep 2012 06:09:41 -0600
parents 8355fddce815
children 0754bdfbc8fe
line wrap: on
line diff
--- a/libinterp/interp-core/jit-typeinfo.cc	Thu Sep 13 12:44:18 2012 -0700
+++ b/libinterp/interp-core/jit-typeinfo.cc	Fri Sep 14 06:09:41 2012 -0600
@@ -586,6 +586,16 @@
     args (fn.args), call_conv (fn.call_conv), mcan_error (fn.mcan_error)
 {}
 
+void
+jit_function::erase (void)
+{
+  if (! llvm_function)
+    return;
+
+  llvm_function->eraseFromParent ();
+  llvm_function = 0;
+}
+
 std::string
 jit_function::name (void) const
 {