[LLVMdev] C++ Constructors
John Criswell
criswell at uiuc.edu
Thu Dec 11 14:45:07 PST 2008
Chris Lattner wrote:
> On Dec 11, 2008, at 2:35 PM, John Criswell wrote:
>
>
>> Dear All,
>>
>> Are global static constructors called before main() in LLVM these days
>> using some behind-the-scenes magic that is not explicit in the LLVM
>> bitcode?
>>
>
> It is explicit in the bitcode. You should see an llvm.globalctors
> global array that has function pointers for each initializer to run.
>
Right, I saw that. I just didn't see anything from main() calling those
functions, which led me to believe that something else is calling those
functions before main().
>> In older versions of LLVM, llvm-gcc added an explicit function
>> call to __main() as the first instruction in main(); __main() would
>> call
>> all global static constructors. It seems __main() is now gone.
>>
>
> Yep, __main is now gone, llvm.globalctors is king. :)
>
I assume putting my constructor at the head of the llvm.globalctors list
will force it to be run before anything else? Is that correct?
-- John T.
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
More information about the llvm-dev
mailing list