From 66a8494e98a36e2639fa60ab31364290652fe396 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 8 May 2003 21:08:43 +0000 Subject: [PATCH] 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 --- lib/ExecutionEngine/JIT/VM.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/ExecutionEngine/JIT/VM.cpp b/lib/ExecutionEngine/JIT/VM.cpp index c107438f0f2..836e00e4fa8 100644 --- a/lib/ExecutionEngine/JIT/VM.cpp +++ b/lib/ExecutionEngine/JIT/VM.cpp @@ -81,10 +81,17 @@ void *VM::getPointerToFunction(const Function *F) { 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; -- 2.34.1