------- Additional Comments From neroden at gcc dot gnu dot org 2004-11-27
18:44 -------
libcpp no longer uses HOST_WIDE_INT.
The computation which leads to the error is done in c-decl.c in "target
arithmetic" as follows:
/* 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
done in the proper mode. */
itype = fold (build2 (MINUS_EXPR, index_type,
convert (index_type, size),
convert (index_type,
size_one_node)));
/* If that overflowed, the array is too big. ???
While a size of INT_MAX+1 technically shouldn't
cause an overflow (because we subtract 1), the
overflow is recorded during the conversion to
index_type, before the subtraction. Handling
this case seems like an unnecessary
complication. */
if (TREE_OVERFLOW (itype))
{
error ("size of array %qs is too large", name);
type = error_mark_node;
continue;
}
This looks OK.
Steven, can you possibly check to see whether this bug still exists in
mainline?
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16621