[LLVMdev] Can't create "main" function?
baldrick at free.fr
Thu Apr 11 08:34:18 PDT 2013
On 10/04/13 20:23, edA-qa mort-ora-y wrote:
> Got it. I had a global_variable also with the name "main". Perhaps
> getOrInsertFuntion needs an assert to check this (it was returning a
> variable I guess rather than a function, and thus static_cast was broken).
if you use LLVM's cast rather than static_cast then you will get an
assertion failure if the cast is wrong.
> On 10/04/13 20:15, edA-qa mort-ora-y wrote:
>> I'm getting a strange behaviour when I attempt to create my main function:
>> auto func = static_cast<llvm::Function*>(module->getOrInsertFunction(
>> types->type_void(), (llvm::Type*)0 ) );
>> ASSERT( func );
>> auto block = llvm::BasicBlock::Create( *context, "entry", func );
>> The "BasicBlock::Create" function is causing a segfault. This only
>> happens if the function is called "main", any other function and it
>> works fine. Prior to this call I also do this assert to ensure "main"
>> doesn't actually exist:
>> ASSERT( !module->getFunction("main" ) );
>> I must be missing something trivial, but I'm not sure what.
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev