assert early instead of late for unimplemented feature


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6050 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/ExecutionEngine/JIT/VM.cpp b/lib/ExecutionEngine/JIT/VM.cpp
index c107438..836e00e 100644
--- a/lib/ExecutionEngine/JIT/VM.cpp
+++ b/lib/ExecutionEngine/JIT/VM.cpp
@@ -81,10 +81,17 @@
   if (F->isExternal())
     return Addr = getPointerToNamedFunction(F->getName());
 
-  // JIT all of the functions in the module.  Eventually this will JIT functions
-  // on demand.  This has the effect of populating all of the non-external
-  // functions into the GlobalAddress table.
+  static bool isAlreadyCodeGenerating = false;
+  if (isAlreadyCodeGenerating) {
+    assert(0 && "Recursive function stubs not handled yet!");
+  }
+
+  // FIXME: JIT all of the functions in the module.  Eventually this will JIT
+  // functions on demand.  This has the effect of populating all of the
+  // non-external functions into the GlobalAddress table.
+  isAlreadyCodeGenerating = true;
   PM.run(getModule());
+  isAlreadyCodeGenerating = false;
 
   assert(Addr && "Code generation didn't add function to GlobalAddress table!");
   return Addr;