"finish" does not work on sparc if function returns array.
authorJoel Brobecker <brobecker@gnat.com>
Wed, 5 May 2010 16:59:00 +0000 (16:59 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Wed, 5 May 2010 16:59:00 +0000 (16:59 +0000)
ChangeLog:

        * sparc-tdep.c (sparc_structure_or_union_p): Return non-zero
        for array types.
        * sparc64-tdep.c (sparc64_structure_or_union_p): Likewise.

gdb/ChangeLog
gdb/sparc-tdep.c
gdb/sparc64-tdep.c

index 140684020c1918bdd411fa918a93549508b18149..b5f75b4b590ab2ed682147a682c3dfb2076ae829 100644 (file)
@@ -1,3 +1,9 @@
+2010-05-05  Joel Brobecker  <brobecker@adacore.com>
+
+       * sparc-tdep.c (sparc_structure_or_union_p): Return non-zero
+       for array types.
+       * sparc64-tdep.c (sparc64_structure_or_union_p): Likewise.
+
 2010-05-04  Pierre Muller  <muller@ics.u-strasbg.fr>
 
        ARI fix: Remove ATTRIBUTE_UNUSED throughout.
index a2bae9f0f5890cae485bd561fba47fc034838abb..29a12cf5d65545b1e3a841aa980e71270e834744 100644 (file)
@@ -221,7 +221,11 @@ sparc_floating_p (const struct type *type)
   return 0;
 }
 
-/* Check whether TYPE is "Structure or Union".  */
+/* Check whether TYPE is "Structure or Union".
+
+   In terms of Ada subprogram calls, arrays are treated the same as
+   struct and union types.  So this function also returns non-zero
+   for array types.  */
 
 static int
 sparc_structure_or_union_p (const struct type *type)
@@ -230,6 +234,7 @@ sparc_structure_or_union_p (const struct type *type)
     {
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
+    case TYPE_CODE_ARRAY:
       return 1;
     default:
       break;
index 9a34834f69da9d0360068bcd6e545b023f1d0c85..3cd6109f90a7d3977127e190fe82bedd6eaf659a 100644 (file)
@@ -103,7 +103,11 @@ sparc64_floating_p (const struct type *type)
   return 0;
 }
 
-/* Check whether TYPE is "Structure or Union".  */
+/* Check whether TYPE is "Structure or Union".
+
+   In terms of Ada subprogram calls, arrays are treated the same as
+   struct and union types.  So this function also returns non-zero
+   for array types.  */
 
 static int
 sparc64_structure_or_union_p (const struct type *type)
@@ -112,6 +116,7 @@ sparc64_structure_or_union_p (const struct type *type)
     {
     case TYPE_CODE_STRUCT:
     case TYPE_CODE_UNION:
+    case TYPE_CODE_ARRAY:
       return 1;
     default:
       break;