diff options
author | Roland McGrath <roland@redhat.com> | 2009-07-15 11:14:23 -0700 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2009-07-15 11:15:02 -0700 |
commit | 7dd9464d06c7826952be3c4fa7fc963dd563c025 (patch) | |
tree | 1c82f4acd565fc1e8a61289caf765e7499c56ce6 /libdw/dwarf_getlocation.c | |
parent | 96d950e3e28d89469b62b46d5a014ad1260e6a1a (diff) |
dwarf_getlocation.c: Grok DW_OP_form_tls_address, DW_OP_GNU_push_tls_address, and DW_OP_bit_piece.
Diffstat (limited to 'libdw/dwarf_getlocation.c')
-rw-r--r-- | libdw/dwarf_getlocation.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/libdw/dwarf_getlocation.c b/libdw/dwarf_getlocation.c index 7f07e169..c7f7a890 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; } |