aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Muller <muller@sourceware.org>2010-05-21 20:45:19 +0000
committerPierre Muller <muller@sourceware.org>2010-05-21 20:45:19 +0000
commitf346a30d48d166e2471126b8121a819ef39e3312 (patch)
treeb3602fc4a1e802a75c69d8b2ad3c564044d464a8
parentafd74c5ff76010405caddd2834be4a0178fa93dd (diff)
downloadgdb-f346a30d48d166e2471126b8121a819ef39e3312.zip
gdb-f346a30d48d166e2471126b8121a819ef39e3312.tar.gz
gdb-f346a30d48d166e2471126b8121a819ef39e3312.tar.bz2
* dwarf2read.c (new_symbol): Handle DW_AT_variable_parameter
attribute.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/dwarf2read.c9
2 files changed, 14 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index b701354..067ea48 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2010-05-21 Pierre Muller <muller@ics.u-strasbg.fr>
+
+ * dwarf2read.c (new_symbol): Handle DW_AT_variable_parameter
+ attribute.
+
2010-05-21 Tom Tromey <tromey@redhat.com>
* dwarf2loc.c (read_pieced_value): Work properly when 'v' has an
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index f4ef780..129d6c1 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -8664,6 +8664,15 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
{
dwarf2_const_value (attr, sym, cu);
}
+ attr = dwarf2_attr (die, DW_AT_variable_parameter, cu);
+ if (attr && DW_UNSND (attr))
+ {
+ struct type *ref_type;
+
+ ref_type = lookup_reference_type (SYMBOL_TYPE (sym));
+ SYMBOL_TYPE (sym) = ref_type;
+ }
+
add_symbol_to_list (sym, cu->list_in_scope);
break;
case DW_TAG_unspecified_parameters: