aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Stallman <rms@gnu.org>1993-10-08 01:49:18 +0000
committerRichard Stallman <rms@gnu.org>1993-10-08 01:49:18 +0000
commit20bf3fac14ef2e556787dd07199d45dbd813e31d (patch)
tree2d36a47060b235a5974e8f8af9a7bbb37612a6ba
parent41f2002ce1e733cb207dfb751f068a1af82f6a1c (diff)
downloadgcc-20bf3fac14ef2e556787dd07199d45dbd813e31d.zip
gcc-20bf3fac14ef2e556787dd07199d45dbd813e31d.tar.gz
gcc-20bf3fac14ef2e556787dd07199d45dbd813e31d.tar.bz2
(complete_array_type): Correctly set MAXINDEX to one less than array size.
From-SVN: r5670
-rw-r--r--gcc/c-decl.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index 250197a..dc42018 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -3675,12 +3675,13 @@ complete_array_type (type, initial_value, do_default)
{
int eltsize
= int_size_in_bytes (TREE_TYPE (TREE_TYPE (initial_value)));
- maxindex = build_int_2 (TREE_STRING_LENGTH (initial_value) / eltsize - 1, 0);
+ maxindex = build_int_2 ((TREE_STRING_LENGTH (initial_value)
+ / eltsize) - 1, 0);
}
else if (TREE_CODE (initial_value) == CONSTRUCTOR)
{
tree elts = CONSTRUCTOR_ELTS (initial_value);
- maxindex = integer_zero_node;
+ maxindex = size_binop (MINUS_EXPR, integer_zero_node, size_one_node);
for (; elts; elts = TREE_CHAIN (elts))
{
if (TREE_PURPOSE (elts))