summaryrefslogtreecommitdiffstats
path: root/loc2c.c
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-08-21 19:16:18 -0700
committerJosh Stone <jistone@redhat.com>2009-08-21 19:16:18 -0700
commit9c11995121a80bb6f97af1a2cb1fe71ad06b67a9 (patch)
tree413926dd6e7f1c3212a7e036b9292e53dee6b548 /loc2c.c
parentaaf7ffe85f54349200ffb60aff628fb9fe68be75 (diff)
downloadsystemtap-steved-9c11995121a80bb6f97af1a2cb1fe71ad06b67a9.tar.gz
systemtap-steved-9c11995121a80bb6f97af1a2cb1fe71ad06b67a9.tar.xz
systemtap-steved-9c11995121a80bb6f97af1a2cb1fe71ad06b67a9.zip
PR10461: Add support for C++ classes and references
* dwarf_wrappers.cxx (dwarf_type_name): Name class and reference types. * dwflpp.cxx (dwflpp::iterate_over_globals): Capture class names. (dwflpp::print_members): Permit classes, and dig into inheritance. (dwflpp::find_struct_member): Ditto. (dwflpp::translate_components): Handle classes and references. (dwflpp::translate_final_fetch_or_store): Ditto. * loc2c.c (c_translate_pointer): Treat references as simple pointers.
Diffstat (limited to 'loc2c.c')
-rw-r--r--loc2c.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/loc2c.c b/loc2c.c
index 26ca3ba1..9d58269c 100644
--- a/loc2c.c
+++ b/loc2c.c
@@ -1612,7 +1612,9 @@ c_translate_pointer (struct obstack *pool, int indent,
Dwarf_Addr dwbias __attribute__ ((unused)),
Dwarf_Die *typedie, struct location **input)
{
- assert (dwarf_tag (typedie) == DW_TAG_pointer_type);
+ assert (dwarf_tag (typedie) == DW_TAG_pointer_type ||
+ dwarf_tag (typedie) == DW_TAG_reference_type ||
+ dwarf_tag (typedie) == DW_TAG_rvalue_reference_type);
Dwarf_Attribute attr_mem;
Dwarf_Word byte_size;