diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-03-13 08:31:27 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-03-13 08:31:27 -0500 |
commit | c05f751c24182e733cb986b7660ec1223be52428 (patch) | |
tree | a926aec850cd012df0b2f7d28cf873eacb06f676 /gcc/c-common.c | |
parent | 649ff3b44f1adaca0ee5c2a51f568f334cb476eb (diff) | |
download | gcc-c05f751c24182e733cb986b7660ec1223be52428.zip gcc-c05f751c24182e733cb986b7660ec1223be52428.tar.gz gcc-c05f751c24182e733cb986b7660ec1223be52428.tar.bz2 |
(constant_expression_warning, overflow_warning): Handle REAL_CST and
COMPLEX_CST.
From-SVN: r6769
Diffstat (limited to 'gcc/c-common.c')
-rw-r--r-- | gcc/c-common.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/gcc/c-common.c b/gcc/c-common.c index b71a425..ecdeb8f 100644 --- a/gcc/c-common.c +++ b/gcc/c-common.c @@ -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, |