aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2008-10-13 21:10:32 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2008-10-13 21:10:32 +0200
commit0adef32bee4f98513acb41813bba4f70bda7a050 (patch)
tree5ff7514b7e84005c35a38dc133b9249a6e73703b /gcc
parentdc66391d69625b910b5d2aaae7eb28dd7267669e (diff)
downloadgcc-0adef32bee4f98513acb41813bba4f70bda7a050.zip
gcc-0adef32bee4f98513acb41813bba4f70bda7a050.tar.gz
gcc-0adef32bee4f98513acb41813bba4f70bda7a050.tar.bz2
re PR middle-end/37601 (gcc-4.4-20080919 ada build failure)
PR middle-end/37601 * gcc-interface/utils.c (gnat_types_compatible_p): Handle NULL TYPE_DOMAIN. From-SVN: r141092
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/gcc-interface/utils.c11
2 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index d384ff5..7cbfc1b 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,9 @@
+2008-10-13 Jakub Jelinek <jakub@redhat.com>
+
+ PR middle-end/37601
+ * gcc-interface/utils.c (gnat_types_compatible_p): Handle
+ NULL TYPE_DOMAIN.
+
2008-10-07 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index d883d53..21904d4 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -2444,10 +2444,13 @@ gnat_types_compatible_p (tree t1, tree t2)
the same component type and the same domain. */
if (code == ARRAY_TYPE
&& TREE_TYPE (t1) == TREE_TYPE (t2)
- && tree_int_cst_equal (TYPE_MIN_VALUE (TYPE_DOMAIN (t1)),
- TYPE_MIN_VALUE (TYPE_DOMAIN (t2)))
- && tree_int_cst_equal (TYPE_MAX_VALUE (TYPE_DOMAIN (t1)),
- TYPE_MAX_VALUE (TYPE_DOMAIN (t2))))
+ && (TYPE_DOMAIN (t1) == TYPE_DOMAIN (t2)
+ || (TYPE_DOMAIN (t1)
+ && TYPE_DOMAIN (t2)
+ && tree_int_cst_equal (TYPE_MIN_VALUE (TYPE_DOMAIN (t1)),
+ TYPE_MIN_VALUE (TYPE_DOMAIN (t2)))
+ && tree_int_cst_equal (TYPE_MAX_VALUE (TYPE_DOMAIN (t1)),
+ TYPE_MAX_VALUE (TYPE_DOMAIN (t2))))))
return 1;
/* Padding record types are also compatible if they pad the same