[LLVMdev] How to create Global Variables using LLVM API?
subramanyam
subbu.pur at gmail.com
Tue May 11 22:45:23 PDT 2010
Thanks. It works.
Actually, the signature of the constructor given in the online documentation
is different from the actual source code.
Nick Lewycky wrote:
>
> subramanyam wrote:
>>
>> I am new to LLVM API. and I am experimenting with it.
>> I want to create Global Variables in a module.
>> I am able to create local variables using IRBuilder class. I tried using
>> GlobalVariable class to create global variables.
>> but it doesn't work. my code looks like this:
>>
>> Module* mod = new Module("test", getGlobalContext());
>> Constant* c = mod->getOrInsertFunction("main",
>> IntegerType::get(getGlobalContext(), 32), NULL);
>> Function* main = cast<Function> (c);
>> main->setCallingConv(CallingConv::C);
>> Twine s("foo");
>> StringRef s1("foo");
>> Constant *cons = ConstantArray::get(getGlobalContext(),s1, true);
>> GlobalVariable val(*mod, (Type*)
>> ArrayType::get(Type::getInt8Ty(getGlobalContext()), 4),
>> true,GlobalValue::ExternalLinkage, cons, s);
>
> Firstly, don't cast to Type*. You need to #include "llvm/DerivedTypes.h"
> instead. But that's not your bug.
>
> Don't allocate GlobalVariable val on the stack. You need to 'new' it,
> ala. 'GlobalVariable *val = new GlobalVariable(...);'
>
> I haven't tried running your code, but give that a shot!
>
> Nick
>
>
>
>>
>>
>> Application stops running after reaching the last line. can somebody help
>> me
>> out here?
>>
>>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
--
View this message in context: http://old.nabble.com/How-to-create-Global-Variables-using-LLVM-API--tp28519938p28532205.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
More information about the llvm-dev
mailing list