aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2010-05-05 16:59:00 +0000
committerJoel Brobecker <brobecker@gnat.com>2010-05-05 16:59:00 +0000
commit0497f5b03f47a7bf6e992d39b8057f647b181a8f (patch)
tree0666a4af6afa5c7a638cc288914c77b172450545
parent3e01a7fd46524394beb69329a3979e741925c1bd (diff)
downloadgdb-0497f5b03f47a7bf6e992d39b8057f647b181a8f.zip
gdb-0497f5b03f47a7bf6e992d39b8057f647b181a8f.tar.gz
gdb-0497f5b03f47a7bf6e992d39b8057f647b181a8f.tar.bz2
"finish" does not work on sparc if function returns array.
ChangeLog: * sparc-tdep.c (sparc_structure_or_union_p): Return non-zero for array types. * sparc64-tdep.c (sparc64_structure_or_union_p): Likewise.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/sparc-tdep.c7
-rw-r--r--gdb/sparc64-tdep.c7
3 files changed, 18 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1406840..b5f75b4 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c
index a2bae9f..29a12cf 100644
--- a/gdb/sparc-tdep.c
+++ b/gdb/sparc-tdep.c
@@ -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;
diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c
index 9a34834..3cd6109 100644
--- a/gdb/sparc64-tdep.c
+++ b/gdb/sparc64-tdep.c
@@ -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;