summaryrefslogtreecommitdiffstats
path: root/gcc/ada/gcc-interface/utils.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-23 19:53:29 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-23 19:53:29 +0000
commit541afe39fa54ea961d7ce2d6b6bfa62a85f3181d (patch)
tree5cb1304c4753378138ad13050630e8b216a0809c /gcc/ada/gcc-interface/utils.c
parentb9a8e4c49ae2f195c2c0c4646a75f33ff926986f (diff)
downloadppe42-gcc-541afe39fa54ea961d7ce2d6b6bfa62a85f3181d.tar.gz
ppe42-gcc-541afe39fa54ea961d7ce2d6b6bfa62a85f3181d.zip
* gcc-interface/utils.c (gnat_types_compatible_p): Revert latest change
and recurse only for multidimensional array types instead. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162485 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/gcc-interface/utils.c')
-rw-r--r--gcc/ada/gcc-interface/utils.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index 541f7bb3f91..7752edb4b68 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -2081,7 +2081,7 @@ gnat_types_compatible_p (tree t1, tree t2)
return 1;
/* Array types are also compatible if they are constrained and have the same
- domain and compatible component types. */
+ domain(s) and the same component type. */
if (code == ARRAY_TYPE
&& (TYPE_DOMAIN (t1) == TYPE_DOMAIN (t2)
|| (TYPE_DOMAIN (t1)
@@ -2090,7 +2090,9 @@ gnat_types_compatible_p (tree t1, tree t2)
TYPE_MIN_VALUE (TYPE_DOMAIN (t2)))
&& tree_int_cst_equal (TYPE_MAX_VALUE (TYPE_DOMAIN (t1)),
TYPE_MAX_VALUE (TYPE_DOMAIN (t2)))))
- && gnat_types_compatible_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+ && (TREE_TYPE (t1) == TREE_TYPE (t2)
+ || (TREE_CODE (TREE_TYPE (t1)) == ARRAY_TYPE
+ && gnat_types_compatible_p (TREE_TYPE (t1), TREE_TYPE (t2)))))
return 1;
/* Padding record types are also compatible if they pad the same
OpenPOWER on IntegriCloud