diff options
author | Roger Sayle <roger@eyesopen.com> | 2005-01-05 17:27:26 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2005-01-05 17:27:26 +0000 |
commit | 010c4d9c147b2bf50580f322fbe94fbde1206971 (patch) | |
tree | bd79071ad9a1a01c8b6a9cba6c42a4fdc67ba610 /gcc/testsuite/gcc.dg/conv-3.c | |
parent | 9368fb8fbc1591c6cc5b20414bff2c1b4f36d05c (diff) | |
download | gcc-010c4d9c147b2bf50580f322fbe94fbde1206971.zip gcc-010c4d9c147b2bf50580f322fbe94fbde1206971.tar.gz gcc-010c4d9c147b2bf50580f322fbe94fbde1206971.tar.bz2 |
re PR middle-end/19100 (Wrong code for ?-operator with casted ?-operator predicat)
PR middle-end/19100
* c-common.c: Include real.h.
(c_common_truthvalue_conversion): Avoid destructively modifying expr.
Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
* Makefile.in (c-common.o): Update dependencies.
* gcc.dg/conv-3.c: New test case.
From-SVN: r92957
Diffstat (limited to 'gcc/testsuite/gcc.dg/conv-3.c')
-rw-r--r-- | gcc/testsuite/gcc.dg/conv-3.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/conv-3.c b/gcc/testsuite/gcc.dg/conv-3.c new file mode 100644 index 0000000..3b4f430 --- /dev/null +++ b/gcc/testsuite/gcc.dg/conv-3.c @@ -0,0 +1,18 @@ +/* PR middle-end/19100 */ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +void abort (void); + +int test (int v) +{ + return ((signed char) (v ? 0x100 : 0)) ? 17 : 18; +} + +int main() +{ + if (test (2) != 18) + abort (); + return 0; +} + |