[LLVMdev] Accessing metadata & creating DIVariable

Vedavyas Duggirala vduggira at gmail.com
Tue Mar 29 08:23:16 PDT 2011


>>> I am  adding local var to existing IR with debug info. I am not using
>>> the Pass infrastructure.
>>>
>>> void InsertDbg(AllocaInst *i, StringRef varname, Instruction, inserbefore)
>>> {
>>>
>>> DIBuilder di(*module);
>>> cu = di.createCU        / * How do I get the MDNode of  already in the
>>> IR . Instead of recreating it, using filename and directory I knew out
>>> of band */
>>
>> DIBuilder.createCompileUnit() does not return anything.
>>
>>> file= di.createFile
>>
>> You don't need CU here.
>>
>>>
>>> type= di.createBasicType   //long
>>
>> same, you don't need CU here.
>
> If I don't have a di.createCompileUnit.  di.createFile fails with this message.
>
> DIBuilder.cpp:59: llvm::DIFile
> llvm::DIBuilder::createFile(llvm::StringRef, llvm::StringRef):
> Assertion `TheCU && "Unable to create DW_TAG_file_type without
> CompileUnit"' failed.
>
> Which had me scratching my head, If DIFile needs a CU it  would be an
> argument to DIBuilder::.createFile
> Also type.Verify() thought createBasicType succeeds.

I meant type.Verify() fails, though the call creatBasicType succeeds.




More information about the llvm-dev mailing list