aboutsummaryrefslogtreecommitdiff
path: root/binutils/dwarf.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-07-03 08:53:50 +0000
committerJakub Jelinek <jakub@redhat.com>2009-07-03 08:53:50 +0000
commit3244e8f5d67de04911b76c9df98bdcb7e15c03fb (patch)
treee3eb48d9690c97d1d51e2db2249ffe3981ef0155 /binutils/dwarf.c
parentd7edf97466276f62a67746d357e5331ca7e9e398 (diff)
downloadgdb-3244e8f5d67de04911b76c9df98bdcb7e15c03fb.zip
gdb-3244e8f5d67de04911b76c9df98bdcb7e15c03fb.tar.gz
gdb-3244e8f5d67de04911b76c9df98bdcb7e15c03fb.tar.bz2
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_implicit_value
and DW_OP_stack_value. * dwarf.c (decode_location_expression): Handle DW_OP_stack_value and DW_OP_implicit_value.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r--binutils/dwarf.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index 1a01e00..86bf2cb 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -1014,6 +1014,19 @@ decode_location_expression (unsigned char * data,
data += bytes_read;
break;
+ /* DWARF 4 extensions. */
+ case DW_OP_stack_value:
+ printf ("DW_OP_stack_value");
+ break;
+
+ case DW_OP_implicit_value:
+ printf ("DW_OP_implicit_value");
+ uvalue = read_leb128 (data, &bytes_read, 0);
+ data += bytes_read;
+ display_block (data, uvalue);
+ data += uvalue;
+ break;
+
/* GNU extensions. */
case DW_OP_GNU_push_tls_address:
printf ("DW_OP_GNU_push_tls_address or DW_OP_HP_unknown");