* dwarf2read.c (read_subroutine_type): Add the subroutine type to the
[deliverable/binutils-gdb.git] / gdb / dwarf2read.c
index 13f3c7a27eed80f62d76eb5914a02c31e239b7df..ffeaaf2331b58a7a8bebbe3e91b5f5a3e0971b0f 100644 (file)
@@ -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 *
This page took 0.025114 seconds and 4 git commands to generate.