re PR c/11207 (ICE with negative index in array element designator)
authorMatt Kraai <kraai@alumni.cmu.edu>
Tue, 19 Aug 2003 01:36:29 +0000 (01:36 +0000)
committerMatt Kraai <kraai@gcc.gnu.org>
Tue, 19 Aug 2003 01:36:29 +0000 (01:36 +0000)
PR c/11207
* c-typeck.c (set_init_index): Check for negative index.

(testsuite/)
* gcc.dg/noncompile/20030818-1.c: New.

From-SVN: r70553

gcc/ChangeLog
gcc/c-typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/noncompile/20030818-1.c [new file with mode: 0644]

index d14e72c..b62d2c9 100644 (file)
@@ -1,3 +1,8 @@
+2003-08-18  Matt Kraai  <kraai@alumni.cmu.edu>
+
+       PR c/11207
+       * c-typeck.c (set_init_index): Check for negative index.
+
 2003-08-18  Bob Wilson  <bob.wilson@acm.org>
 
        * config/xtensa/crti.asm (_init, _fini): Add alternate code for new
index 224741b..423d6bd 100644 (file)
@@ -4956,6 +4956,8 @@ set_init_index (tree first, tree last)
     error_init ("nonconstant array index in initializer");
   else if (TREE_CODE (constructor_type) != ARRAY_TYPE)
     error_init ("array index in non-array initializer");
+  else if (tree_int_cst_sgn (first) == -1)
+    error_init ("array index in initializer exceeds array bounds");
   else if (constructor_max_index
           && tree_int_cst_lt (constructor_max_index, first))
     error_init ("array index in initializer exceeds array bounds");
index 6a38f18..29553cd 100644 (file)
@@ -1,3 +1,7 @@
+2003-08-18  Matt Kraai  <kraai@alumni.cmu.edu>
+
+       * gcc.dg/noncompile/20030818-1.c: New.
+
 2003-08-18  Nathan Sidwell  <nathan@codesourcery.com>
 
        * g++.dg/template/scope2.C: New test.
diff --git a/gcc/testsuite/gcc.dg/noncompile/20030818-1.c b/gcc/testsuite/gcc.dg/noncompile/20030818-1.c
new file mode 100644 (file)
index 0000000..6e62629
--- /dev/null
@@ -0,0 +1,3 @@
+/* PR 11207.  */
+
+char font8x8[256][8] = { [-1] = { 0 } }; /* { dg-error "array index in initializer exceeds array bounds" } */