2003-07-31 H.J. Lu * dwarf2read.c (new_symbol): Mark DW_TAG_formal_parameter with DW_OP_deref with LOC_COMPUTED_ARG. --- gdb/dwarf2read.c.arg 2003-07-30 21:38:25.000000000 -0700 +++ gdb/dwarf2read.c 2003-07-31 09:06:53.000000000 -0700 @@ -5231,9 +5231,9 @@ new_symbol (struct die_info *die, struct SYMBOL_VALUE (sym) = DWARF2_REG_TO_REGNUM (SYMBOL_VALUE (sym)); } - else if (offreg) + else if (isderef) { - if (isderef) + if (offreg) { if (basereg != frame_base_reg) dwarf2_complex_location_expr_complaint (); @@ -5241,10 +5241,16 @@ new_symbol (struct die_info *die, struct } else { - SYMBOL_CLASS (sym) = LOC_BASEREG_ARG; - SYMBOL_BASEREG (sym) = DWARF2_REG_TO_REGNUM (basereg); + dwarf2_symbol_mark_computed (attr, sym, + cu_header, objfile); + SYMBOL_CLASS (sym) = LOC_COMPUTED_ARG; } } + else if (offreg) + { + SYMBOL_CLASS (sym) = LOC_BASEREG_ARG; + SYMBOL_BASEREG (sym) = DWARF2_REG_TO_REGNUM (basereg); + } else { SYMBOL_CLASS (sym) = LOC_ARG;