re PR c++/25263 (ICE on invalid array bound: int x[1/0];)

PR c++/25263
	* decl.c (compute_array_index_type): Check that itype is an
	INTEGER_CST node before testing/clearing TREE_OVERFLOW.

	* g++.dg/other/array2.C: New test case.

From-SVN: r108119
This commit is contained in:
Roger Sayle 2005-12-06 14:00:09 +00:00 committed by Roger Sayle
parent c032882353
commit 9116d529f6
4 changed files with 19 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2005-12-06 Roger Sayle <roger@eyesopen.com>
PR c++/25263
* decl.c (compute_array_index_type): Check that itype is an
INTEGER_CST node before testing/clearing TREE_OVERFLOW.
2005-12-05 Daniel Berlin <dberlin@dberlin.org>
* ptree.c (cxx_print_decl): Update to check for decl_common

View File

@ -6374,7 +6374,8 @@ compute_array_index_type (tree name, tree size)
/* Make sure that there was no overflow when creating to a signed
index type. (For example, on a 32-bit machine, an array with
size 2^32 - 1 is too big.) */
else if (TREE_OVERFLOW (itype))
else if (TREE_CODE (itype) == INTEGER_CST
&& TREE_OVERFLOW (itype))
{
error ("overflow in array dimension");
TREE_OVERFLOW (itype) = 0;

View File

@ -1,3 +1,8 @@
2005-12-06 Roger Sayle <roger@eyesopen.com>
PR c++/25263
* g++.dg/other/array2.C: New test case.
2005-12-05 Geoffrey Keating <geoffk@apple.com>
* gcc.dg/darwin-weakimport-3.c: New.

View File

@ -0,0 +1,6 @@
// PR c++/25263
// { dg-do compile }
int x[1/0]; // { dg-warning "division by zero" }
// { dg-error "constant" "constant" { target *-*-* } 4 }