(constant_expression_warning, overflow_warning): Handle REAL_CST and

COMPLEX_CST.

From-SVN: r6769
This commit is contained in:
Richard Kenner 1994-03-13 08:31:27 -05:00
parent 649ff3b44f
commit c05f751c24
1 changed files with 16 additions and 4 deletions

View File

@ -1078,9 +1078,10 @@ void
constant_expression_warning (value)
tree value;
{
if (TREE_CODE (value) == INTEGER_CST && TREE_CONSTANT_OVERFLOW (value))
if (pedantic)
pedwarn ("overflow in constant expression");
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");
}
/* Print a warning if an expression had overflow in folding.
@ -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,