Hi,
I'm encountering a problem with llvm.dbg.declare. My code looks
basically like this:
if(DbgDeclareInst *dbg = dyn_cast<DbgDeclareInst>(&inst)) {
const Value* addr = dbg->getAddress();
const MDNode* mvar = dbg->getVariable();
...
}
While the MDNode (mvar) contains the correct information (name of the
variable, etc...), getAddress always returns NULL. Am I missing
something, or is there some other way to access the variable being
declared?
NB: this happens when processing the following bitcode:
define i32 @fun(i32 %a, float %b) nounwind {
entry:
%a_addr = alloca i32, align 4
%b_addr = alloca float, align 4
%retval = alloca i32
%0 = alloca i32
%"alloca point" = bitcast i32 0 to i32
call void @llvm.dbg.declare(metadata !{i32* %a_addr}, metadata !8), !
dbg !9
...
!8 = metadata !{i32 524545, metadata !4, metadata !"a", metadata !1, i32
3, metadata !3} ; [ DW_TAG_arg_variable ]
....
Best regards,
Jacob