diff options
| author | Mark Wielaard <[email protected]> | 2011-02-23 20:30:09 +0100 |
|---|---|---|
| committer | Mark Wielaard <[email protected]> | 2011-02-23 20:30:09 +0100 |
| commit | 558fff778e7e7f134d66eddbb3c31aaa52fb8f63 (patch) | |
| tree | 17ddf426b11d05406ecb0d1c09ad3aef5fb1d50f | |
| parent | e32d29230d09fb24c2a0a58ed0633a9651d1386d (diff) | |
| parent | f7d3685431f4158ba4ceca514c4722fa7b088992 (diff) | |
Merge branch 'dwarf' into mjw/dwarf_output
| -rw-r--r-- | libdw/ChangeLog | 5 | ||||
| -rw-r--r-- | libdw/c++/dwarf-knowledge.cc | 4 | ||||
| -rw-r--r-- | src/dwarfstrings.c | 40 |
3 files changed, 48 insertions, 1 deletions
diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 51a24b7c..1b85aebf 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,3 +1,8 @@ +2011-02-23 Roland McGrath <[email protected]> + + * c++/dwarf-knowledge.cc (expected_value_space): + Grok DW_AT_GNU_odr_signature. + 2010-12-07 Petr Machata <[email protected]> * c++/subr.hh (sharing_stack::element::pop): Remove. Move the diff --git a/libdw/c++/dwarf-knowledge.cc b/libdw/c++/dwarf-knowledge.cc index 3d8edeb5..5fdf123e 100644 --- a/libdw/c++/dwarf-knowledge.cc +++ b/libdw/c++/dwarf-knowledge.cc @@ -12,7 +12,6 @@ using namespace elfutils; static unsigned int expected_value_space (int attr, int tag) { - switch (attr) { case DW_AT_sibling: @@ -154,6 +153,9 @@ expected_value_space (int attr, int tag) case DW_AT_MIPS_linkage_name: return VS(identifier); + + case DW_AT_GNU_odr_signature: + return VS(constant); } return 0; diff --git a/src/dwarfstrings.c b/src/dwarfstrings.c index bfccece8..7ef2a35c 100644 --- a/src/dwarfstrings.c +++ b/src/dwarfstrings.c @@ -313,6 +313,46 @@ dwarf_attr_string (unsigned int attrnum) result = "body_end"; break; + case DW_AT_GNU_vector: + result = "GNU_vector"; + break; + + case DW_AT_GNU_guarded_by: + result = "GNU_guarded_by"; + break; + + case DW_AT_GNU_pt_guarded_by: + result = "GNU_pt_guarded_by"; + break; + + case DW_AT_GNU_guarded: + result = "GNU_guarded"; + break; + + case DW_AT_GNU_pt_guarded: + result = "GNU_pt_guarded"; + break; + + case DW_AT_GNU_locks_excluded: + result = "GNU_locks_excluded"; + break; + + case DW_AT_GNU_exclusive_locks_required: + result = "GNU_exclusive_locks_required"; + break; + + case DW_AT_GNU_shared_locks_required: + result = "GNU_shared_locks_required"; + break; + + case DW_AT_GNU_odr_signature: + result = "GNU_odr_signature"; + break; + + case DW_AT_GNU_template_name: + result = "GNU_template_name"; + break; + default: if (attrnum < DW_AT_lo_user) snprintf (buf, sizeof buf, gettext ("unknown attribute %hx"), |
