Commit 6414bad6 by Roger Sayle Committed by Roger Sayle

c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on INTEGER_CST nodes.


	* c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
	INTEGER_CST nodes.
	* c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
	CONSTANT_CLASS_P nodes.

From-SVN: r101187
parent e364ab3a
2005-06-19 Roger Sayle <roger@eyesopen.com>
* c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
INTEGER_CST nodes.
* c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
CONSTANT_CLASS_P nodes.
2005-06-19 Richard Henderson <rth@redhat.com>
* config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
......
......@@ -4192,7 +4192,8 @@ grokdeclarator (const struct c_declarator *declarator,
index_type, before the subtraction. Handling
this case seems like an unnecessary
complication. */
if (TREE_OVERFLOW (itype))
if (TREE_CODE (itype) == INTEGER_CST
&& TREE_OVERFLOW (itype))
{
error ("size of array %qs is too large", name);
type = error_mark_node;
......@@ -4357,6 +4358,7 @@ grokdeclarator (const struct c_declarator *declarator,
if (TREE_CODE (type) == ARRAY_TYPE
&& COMPLETE_TYPE_P (type)
&& TREE_CODE (TYPE_SIZE (type)) == INTEGER_CST
&& TREE_OVERFLOW (TYPE_SIZE (type)))
{
error ("size of array %qs is too large", name);
......
......@@ -3331,17 +3331,16 @@ build_c_cast (tree type, tree expr)
/* Ignore any integer overflow caused by the cast. */
if (TREE_CODE (value) == INTEGER_CST)
{
if (EXPR_P (ovalue))
/* If OVALUE had overflow set, then so will VALUE, so it
is safe to overwrite. */
if (CONSTANT_CLASS_P (ovalue))
{
TREE_OVERFLOW (value) = TREE_OVERFLOW (ovalue);
/* Similarly, constant_overflow cannot have become cleared. */
TREE_CONSTANT_OVERFLOW (value) = TREE_CONSTANT_OVERFLOW (ovalue);
}
else
TREE_OVERFLOW (value) = 0;
if (CONSTANT_CLASS_P (ovalue))
/* Similarly, constant_overflow cannot have become
cleared. */
TREE_CONSTANT_OVERFLOW (value) = TREE_CONSTANT_OVERFLOW (ovalue);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment