From: jakub Date: Mon, 13 Oct 2008 19:10:32 +0000 (+0000) Subject: PR middle-end/37601 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=686353fe065ef0c8a8c2dcf7df2d56d619e842f4;p=thirdparty%2Fgcc.git PR middle-end/37601 * 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 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index d384ff538b2a..7cbfc1b6d990 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2008-10-13 Jakub Jelinek + + PR middle-end/37601 + * gcc-interface/utils.c (gnat_types_compatible_p): Handle + NULL TYPE_DOMAIN. + 2008-10-07 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : Move code diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c index d883d533e463..21904d4cb14e 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