------- Comment #15 from davek at gcc dot gnu dot org 2009-09-19 13:13 ------- (In reply to comment #14) > (In reply to comment #13) > > Thanks for taking the time to explain that. > > I think the implication of what you're saying is that we can in fact handle > strings and just giving up on them is too severe, but we need to decide > somewhere a bit further up the call stack whether to use the string itself or > the address-of the string as the value in the location table, based on the > type > of the var_decl; is that about right?
Hmm, maybe not; maybe we should be generating the location notes differently in the first place. (gdb) print varloc $3 = (rtx) 0x7ebdd9b0 (gdb) call debug_rtx(varloc) (var_location opname (expr_list:REG_DEP_TRUE (const_string:SI ("ret")) (const_int 0 [0x0]))) (gdb) If that note held the address of the "ret" string constant we'd be ok. But I'm not sure if we can get that when we need it, the label we'd need to sym_ref probably doesn't exist until we actually emit the string pool. So maybe punting on strings is the best we can do after all. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41404