Null address pointer in llvm.dbg.declare

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