c-decl.c (grokdeclarator): Save variable array size before subtracting 1, rather than after.

* c-decl.c (grokdeclarator): Save variable array size before
        subtracting 1, rather than after.

From-SVN: r92370
This commit is contained in:
Richard Henderson 2004-12-18 19:51:36 -08:00 committed by Richard Henderson
parent 00a689881c
commit 8b0b9aefd2
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2004-12-18 Richard Henderson <rth@redhat.com>
* c-decl.c (grokdeclarator): Save variable array size before
subtracting 1, rather than after.
2004-12-18 Eric Botcazou <ebotcazou@libertysurf.fr>
PR middle-end/15486

View File

@ -4084,6 +4084,12 @@ grokdeclarator (const struct c_declarator *declarator,
}
else
{
/* Arrange for the SAVE_EXPR on the inside of the
MINUS_EXPR, which allows the -1 to get folded
with the +1 that happens when building TYPE_SIZE. */
if (size_varies)
size = variable_size (size);
/* Compute the maximum valid index, that is, size
- 1. Do the calculation in index_type, so that
if it is a variable the computations will be
@ -4107,8 +4113,6 @@ grokdeclarator (const struct c_declarator *declarator,
continue;
}
if (size_varies)
itype = variable_size (itype);
itype = build_index_type (itype);
}
}