diff options
author | Michael Matz <matz@suse.de> | 2009-11-27 15:35:50 +0000 |
---|---|---|
committer | Michael Matz <matz@gcc.gnu.org> | 2009-11-27 15:35:50 +0000 |
commit | 315adedaf3f2072b55095f101d7df04c39d4e3ae (patch) | |
tree | 75f1e805d2291b932c884eafc2b6f80e724af630 /gcc/testsuite/gcc.dg | |
parent | 67c330aec42b2b57cf42abc7ceb46865d51cd789 (diff) | |
download | gcc-315adedaf3f2072b55095f101d7df04c39d4e3ae.zip gcc-315adedaf3f2072b55095f101d7df04c39d4e3ae.tar.gz gcc-315adedaf3f2072b55095f101d7df04c39d4e3ae.tar.bz2 |
re PR rtl-optimization/42084 (Wrong result with -Os -fno-delete-null-pointer-checks)
PR rtl-optimization/42084
* cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
use it to stop walking.
(expand_gimple_cond): Adjust call to above.
testsuite/
* gcc.dg/pr42084.c: New test.
From-SVN: r154709
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/pr42084.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.dg/pr42084.c b/gcc/testsuite/gcc.dg/pr42084.c new file mode 100644 index 0000000..d5aad96 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr42084.c @@ -0,0 +1,22 @@ +/* { dg-do run } */ +/* { dg-options "-O1 -fno-delete-null-pointer-checks" } */ +extern void abort (void); +int g = 0; +static int __attribute__((noinline)) f (long long a, long long b) +{ + int cmp; + cmp = a > b; + if (&g == 0) + cmp-=2; + else + cmp++; + return cmp; +} + +int main (void) +{ + int ret = f (2, 1); + if (ret != 2) + abort (); + return 0; +} |