re PR middle-end/37601 (gcc-4.4-20080919 ada build failure)
authorJakub Jelinek <jakub@redhat.com>
Mon, 13 Oct 2008 19:10:32 +0000 (21:10 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 13 Oct 2008 19:10:32 +0000 (21:10 +0200)
PR middle-end/37601
* gcc-interface/utils.c (gnat_types_compatible_p): Handle
NULL TYPE_DOMAIN.

From-SVN: r141092

gcc/ada/ChangeLog
gcc/ada/gcc-interface/utils.c

index d384ff5..7cbfc1b 100644 (file)
@@ -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
index d883d53..21904d4 100644 (file)
@@ -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