diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 2001-09-20 12:56:59 +0000 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 2001-09-20 08:56:59 -0400 |
commit | ed1a150e05a8bac9bc109a2e3644c9b13a566fd6 (patch) | |
tree | c46e1780f50e12eb39b3ecf27d44ccecbeff1967 /gcc/stor-layout.c | |
parent | 6eb791fc977474c35eed05b27836328e110460ad (diff) | |
download | gcc-ed1a150e05a8bac9bc109a2e3644c9b13a566fd6.zip gcc-ed1a150e05a8bac9bc109a2e3644c9b13a566fd6.tar.gz gcc-ed1a150e05a8bac9bc109a2e3644c9b13a566fd6.tar.bz2 |
stor-layout.c (layout_type, [...]): Kludge to disable array-too-large test for signed sizetype.
* stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable
array-too-large test for signed sizetype.
From-SVN: r45707
Diffstat (limited to 'gcc/stor-layout.c')
-rw-r--r-- | gcc/stor-layout.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index e145b97..57b839f 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1445,9 +1445,16 @@ layout_type (type) = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (element), length); /* Complain if the user has requested an array too large to - fit in size_t. */ + fit in size_t. + + ??? Disable this test for signed sizetypes. This has the effect + of disabling it for Ada, where it will cause trouble. However, + this test doesn't make sense for C either since there should + be no problem with a type whose size overflows, only an + object whose size overflows. */ if (TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST - && TREE_OVERFLOW (TYPE_SIZE (type))) + && TREE_OVERFLOW (TYPE_SIZE (type)) + && TREE_UNSIGNED (TREE_TYPE (TYPE_SIZE (type)))) { error ("requested array too large for target"); |