]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
PR middle-end/37601
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Oct 2008 19:10:32 +0000 (19:10 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Oct 2008 19:10:32 +0000 (19:10 +0000)
* gcc-interface/utils.c (gnat_types_compatible_p): Handle
NULL TYPE_DOMAIN.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141092 138bc75d-0d04-0410-961f-82ee72b054a4

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

index d384ff538b2a3603d5fff1cbcf7cfb55a8c11d7a..7cbfc1b6d990790fe8eb7792c7f36361d85457bb 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 d883d533e4635150fecbf572a5e04583202958aa..21904d4cb14ef59f23c94f6196f5e0e18fd2244c 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