diff options
author | Jakub Jelinek <jakub@redhat.com> | 2008-10-13 21:10:32 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2008-10-13 21:10:32 +0200 |
commit | 0adef32bee4f98513acb41813bba4f70bda7a050 (patch) | |
tree | 5ff7514b7e84005c35a38dc133b9249a6e73703b /gcc/ada/gcc-interface/utils.c | |
parent | dc66391d69625b910b5d2aaae7eb28dd7267669e (diff) | |
download | gcc-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/ada/gcc-interface/utils.c')
-rw-r--r-- | gcc/ada/gcc-interface/utils.c | 11 |
1 files changed, 7 insertions, 4 deletions
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 |