* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.

* dwarf.c (decode_location_expression): For DW_OP_GNU_convert and
	DW_OP_GNU_reinterpret, if uvalue is 0, don't add cu_offset.
	Handle DW_OP_GNU_parameter_ref.
This commit is contained in:
Jakub Jelinek
2011-06-22 15:03:19 +00:00
parent c38c4bc5b2
commit f8b999f945
4 changed files with 19 additions and 2 deletions

View File

@@ -1179,13 +1179,18 @@ decode_location_expression (unsigned char * data,
uvalue = read_leb128 (data, &bytes_read, 0);
data += bytes_read;
printf ("DW_OP_GNU_convert <0x%s>",
dwarf_vmatoa ("x", cu_offset + uvalue));
dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0));
break;
case DW_OP_GNU_reinterpret:
uvalue = read_leb128 (data, &bytes_read, 0);
data += bytes_read;
printf ("DW_OP_GNU_reinterpret <0x%s>",
dwarf_vmatoa ("x", cu_offset + uvalue));
dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0));
break;
case DW_OP_GNU_parameter_ref:
printf ("DW_OP_GNU_parameter_ref: <0x%s>",
dwarf_vmatoa ("x", cu_offset + byte_get (data, 4)));
data += 4;
break;
/* HP extensions. */