From c0d45a51852a7e406c33d2e62f2d190ee71fbf2b Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 22 Jun 2011 15:03:18 +0000 Subject: * 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. --- binutils/dwarf.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'binutils/dwarf.c') diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 46c454adf6..f5a8d7bf17 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -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. */ -- cgit v1.2.1