diff options
author | Richard Stallman <rms@gnu.org> | 1993-10-08 01:49:18 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1993-10-08 01:49:18 +0000 |
commit | 20bf3fac14ef2e556787dd07199d45dbd813e31d (patch) | |
tree | 2d36a47060b235a5974e8f8af9a7bbb37612a6ba | |
parent | 41f2002ce1e733cb207dfb751f068a1af82f6a1c (diff) | |
download | gcc-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.c | 5 |
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)) |