From: Roland McGrath Date: Wed, 15 Jul 2009 18:14:23 +0000 (-0700) Subject: dwarf_getlocation.c: Grok DW_OP_form_tls_address, DW_OP_GNU_push_tls_address, and... X-Git-Tag: elfutils-0.142~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7dd9464d06c7826952be3c4fa7fc963dd563c025;p=thirdparty%2Felfutils.git dwarf_getlocation.c: Grok DW_OP_form_tls_address, DW_OP_GNU_push_tls_address, and DW_OP_bit_piece. --- diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 52e78e963..6c45b9d9e 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,8 @@ +2009-07-15 Roland McGrath + + * dwarf_getlocation.c: Grok DW_OP_form_tls_address, + DW_OP_GNU_push_tls_address, and DW_OP_bit_piece. + 2009-07-13 Roland McGrath * dwarf_getlocation.c: Grok DW_OP_call_frame_cfa. diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index 7f07e169f..c7f7a890d 100644 --- a/libdw/dwarf_getlocation.c +++ b/libdw/dwarf_getlocation.c @@ -244,6 +244,8 @@ __libdw_intern_expression (Dwarf *dbg, case DW_OP_push_object_address: case DW_OP_call_ref: case DW_OP_call_frame_cfa: + case DW_OP_form_tls_address: + case DW_OP_GNU_push_tls_address: /* No operand. */ break; @@ -336,6 +338,12 @@ __libdw_intern_expression (Dwarf *dbg, get_sleb128 (newloc->number2, data); break; + case DW_OP_bit_piece: + /* XXX Check size. */ + get_uleb128 (newloc->number, data); + get_uleb128 (newloc->number2, data); + break; + default: goto invalid; }