diff options
author | Andrew Pinski <pinskia@physics.uc.edu> | 2005-07-23 02:20:30 +0000 |
---|---|---|
committer | Andrew Pinski <pinskia@gcc.gnu.org> | 2005-07-22 19:20:30 -0700 |
commit | 452f9012f4f080c48e297470903b330416328e3c (patch) | |
tree | 0bd0e07d852136dce123ddf36974c4688155cdc8 | |
parent | 2188985147958ea657a536e2faf68d7c7daca446 (diff) | |
download | gcc-452f9012f4f080c48e297470903b330416328e3c.zip gcc-452f9012f4f080c48e297470903b330416328e3c.tar.gz gcc-452f9012f4f080c48e297470903b330416328e3c.tar.bz2 |
re PR tree-optimization/22625 (-ftree-vrp produces wrong code)
2005-07-22 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/22625
* g++.dg/opt/vrp2.C: New test.
From-SVN: r102303
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/opt/vrp2.C | 20 |
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 64a5887..0bc99d0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-07-22 Andrew Pinski <pinskia@physics.uc.edu> + + PR tree-opt/22625 + * g++.dg/opt/vrp2.C: New test. + 2005-07-22 Mark Mitchell <mark@codesourcery.com> PR debug/21828 diff --git a/gcc/testsuite/g++.dg/opt/vrp2.C b/gcc/testsuite/g++.dg/opt/vrp2.C new file mode 100644 index 0000000..2568f64 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/vrp2.C @@ -0,0 +1,20 @@ +/* { dg-do run } */ +/* { dg-options "-O2" } */ + +/* VRP was miscompiling the following as it thought &a->b was a dereference + and therfore a was non-null. + Reduced from Mozilla by Serge Belyshev <belyshev@depni.sinp.msu.ru>. */ + +extern "C" void abort (void); +struct T { int i; } t; +struct A : T { int j; } q, *p = &q; + +int main (void) +{ + if (p == &t) + return 0; + if (p) + abort (); + return 0; +} + |