Commit c05f751c by Richard Kenner

(constant_expression_warning, overflow_warning): Handle REAL_CST and

COMPLEX_CST.

From-SVN: r6769
parent 649ff3b4
......@@ -1078,8 +1078,9 @@ void
constant_expression_warning (value)
tree value;
{
if (TREE_CODE (value) == INTEGER_CST && TREE_CONSTANT_OVERFLOW (value))
if (pedantic)
if ((TREE_CODE (value) == INTEGER_CST || TREE_CODE (value) == REAL_CST
|| TREE_CODE (value) == COMPLEX_CST)
&& TREE_CONSTANT_OVERFLOW (value) && pedantic)
pedwarn ("overflow in constant expression");
}
......@@ -1094,11 +1095,22 @@ void
overflow_warning (value)
tree value;
{
if (TREE_CODE (value) == INTEGER_CST && TREE_OVERFLOW (value))
if ((TREE_CODE (value) == INTEGER_CST
|| (TREE_CODE (value) == COMPLEX_CST
&& TREE_CODE (TREE_REALPART (value)) == INTEGER_CST))
&& TREE_OVERFLOW (value))
{
TREE_OVERFLOW (value) = 0;
warning ("integer overflow in expression");
}
else if ((TREE_CODE (value) == REAL_CST
|| (TREE_CODE (value) == COMPLEX_CST
&& TREE_CODE (TREE_REALPART (value)) == REAL_CST))
&& TREE_OVERFLOW (value))
{
TREE_OVERFLOW (value) = 0;
warning ("floating-pointer overflow in expression");
}
}
/* Print a warning if a large constant is truncated to unsigned,
......
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