diff options
author | Richard Guenther <rguenther@suse.de> | 2010-04-20 14:18:35 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-04-20 14:18:35 +0000 |
commit | 48e5069861a635af72d47f8975d177ed36f7e6e5 (patch) | |
tree | 14b8999b913a91192e2e8024fd143015cd58f210 | |
parent | 3c323b522aa996eb4f1d889126002762b34dc066 (diff) | |
download | gcc-48e5069861a635af72d47f8975d177ed36f7e6e5.zip gcc-48e5069861a635af72d47f8975d177ed36f7e6e5.tar.gz gcc-48e5069861a635af72d47f8975d177ed36f7e6e5.tar.bz2 |
re PR tree-optimization/39417 (Incorrect values computed with -ftree-copy-prop)
2010-04-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/39417
* g++.dg/torture/pr39417.C: New testcase.
From-SVN: r158560
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/torture/pr39417.C | 56 |
2 files changed, 61 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 08619da..ff7904b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2010-04-20 Richard Guenther <rguenther@suse.de> + PR tree-optimization/39417 + * g++.dg/torture/pr39417.C: New testcase. + +2010-04-20 Richard Guenther <rguenther@suse.de> + * gcc.dg/ipa/ipa-pta-14.c: New testcase. 2010-04-20 Jakub Jelinek <jakub@redhat.com> diff --git a/gcc/testsuite/g++.dg/torture/pr39417.C b/gcc/testsuite/g++.dg/torture/pr39417.C new file mode 100644 index 0000000..b7bbb88 --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr39417.C @@ -0,0 +1,56 @@ +// { dg-do run } + +#include <vector> + +std::vector <int> +sequence(int l, int n) +{ + std::vector <int> ret; + for(int i=n;i<=100;i++) + { + if(i%2==0) + { + if(l%i==i/2) + { + int init =l/i-i/2+1; + if(init>=0) + { + for(int j=0;j<i;j++) + { + ret.push_back(init); + init ++; + } + break; + } + } + } + else + { + if(l%i==0) + { + int init =l/i-i/2; + if(init>=0) + { + for(int j=0;j<i;j++) + { + ret.push_back(init); + init ++; + } + break; + } + } + } + } + return ret; +} +extern "C" void abort (void); +int main() +{ + std::vector<int> res = sequence(18, 2); + if (res.size () != 3 + || res[0] != 5 + || res[1] != 6 + || res[2] != 7) + abort (); + return 0; +} |