* 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:
parent
c38c4bc5b2
commit
f8b999f945
4 changed files with 19 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2011-06-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* 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.
|
||||
|
||||
2011-06-16 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* dwarf-mode.el (dwarf-do-insert-substructure): Call
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-06-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
|
||||
|
||||
2011-06-20 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR ld/12570
|
||||
|
|
|
@ -563,6 +563,8 @@ enum dwarf_location_atom
|
|||
DW_OP_GNU_deref_type = 0xf6,
|
||||
DW_OP_GNU_convert = 0xf7,
|
||||
DW_OP_GNU_reinterpret = 0xf9,
|
||||
/* The GNU parameter ref extension. */
|
||||
DW_OP_GNU_parameter_ref = 0xfa,
|
||||
/* HP extensions. */
|
||||
DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
|
||||
DW_OP_HP_is_value = 0xe1,
|
||||
|
|
Loading…
Reference in a new issue