From: gaius Date: Thu, 17 Dec 2009 00:09:43 +0000 (+0000) Subject: * dwarf2read.c (read_subroutine_type): Add the subroutine type to the X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=e62c1e636c960ef605281de0201b359f78ba874d;p=pf3gnuchains%2Fpf3gnuchains3x.git * dwarf2read.c (read_subroutine_type): Add the subroutine type to the die immediately to allow a parameter type to be the same subroutine type. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 024ab27759..d0289daf03 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2009-12-15 Gaius Mulley + + * dwarf2read.c (read_subroutine_type): Add the subroutine + type to the die immediately to allow a parameter type to be + the same subroutine type. + 2009-12-15 Tristan Gingold * machoread.c (macho_symfile_read): Set section size of dsym bfd diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 13f3c7a27e..ffeaaf2331 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -5879,6 +5879,11 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu) the default value DW_CC_normal. */ attr = dwarf2_attr (die, DW_AT_calling_convention, cu); TYPE_CALLING_CONVENTION (ftype) = attr ? DW_UNSND (attr) : DW_CC_normal; + + /* We need to add the subroutine type to the die immediately so + we don't infinitely recurse when dealing with parameters + declared as the same subroutine type. */ + set_die_type (die, ftype, cu); if (die->child != NULL) { @@ -5926,7 +5931,7 @@ read_subroutine_type (struct die_info *die, struct dwarf2_cu *cu) } } - return set_die_type (die, ftype, cu); + return ftype; } static struct type *