Commit c05f751c by Richard Kenner

(constant_expression_warning, overflow_warning): Handle REAL_CST and

COMPLEX_CST.

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