summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Wielaard <[email protected]>2011-02-23 20:30:09 +0100
committerMark Wielaard <[email protected]>2011-02-23 20:30:09 +0100
commit558fff778e7e7f134d66eddbb3c31aaa52fb8f63 (patch)
tree17ddf426b11d05406ecb0d1c09ad3aef5fb1d50f
parente32d29230d09fb24c2a0a58ed0633a9651d1386d (diff)
parentf7d3685431f4158ba4ceca514c4722fa7b088992 (diff)
Merge branch 'dwarf' into mjw/dwarf_output
-rw-r--r--libdw/ChangeLog5
-rw-r--r--libdw/c++/dwarf-knowledge.cc4
-rw-r--r--src/dwarfstrings.c40
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"),