From: Chris Lattner Date: Fri, 19 Dec 2003 07:51:46 +0000 (+0000) Subject: Add support for people calling main recursively X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=86f3dda18b7b36071c3f8753f868fb0c3ab22ed9;p=oota-llvm.git Add support for people calling main recursively git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10535 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/runtime/GCCLibraries/crtend/crtend.c b/runtime/GCCLibraries/crtend/crtend.c index 50bbdb70814..58f1bf5f9ab 100644 --- a/runtime/GCCLibraries/crtend/crtend.c +++ b/runtime/GCCLibraries/crtend/crtend.c @@ -34,6 +34,13 @@ void __main(void) { /* Loop over all of the constructor records, calling each function pointer. */ TorRec *R = __llvm_getGlobalCtors(); + /* Recursively calling main is not legal C, but lots of people do it for + * testing stuff. We might as well work for them. + */ + static _Bool Initialized = 0; + if (Initialized) return; + Initialized = 1; + /* Only register the global dtor handler if there is at least one global * dtor! */