diff options
| author | spark <spark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-20 15:42:37 +0000 |
|---|---|---|
| committer | spark <spark@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-03-20 15:42:37 +0000 |
| commit | 559e4bfa7a298959ff3bee9f33fc8d9f0113b9a8 (patch) | |
| tree | 95a82fc829b709d0982639ee3934d07aba52e89a | |
| parent | 08b2466e87abf89c357694ca623d9cf283468d0d (diff) | |
| download | ppe42-gcc-559e4bfa7a298959ff3bee9f33fc8d9f0113b9a8.tar.gz ppe42-gcc-559e4bfa7a298959ff3bee9f33fc8d9f0113b9a8.zip | |
2007-03-19 Seongbae Park <seongbae.park@gmail.com>
PR tree-optimization/30590
* g++.dg/opt/pr30590.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123087 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/opt/pr30590.C | 40 |
2 files changed, 45 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0e772e49a86..147dd302106 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-03-19 Seongbae Park <seongbae.park@gmail.com> + + PR tree-optimization/30590 + * g++.dg/opt/pr30590.C: New testcase. + 2007-03-20 Jakub Jelinek <jakub@redhat.com> PR c/30762 diff --git a/gcc/testsuite/g++.dg/opt/pr30590.C b/gcc/testsuite/g++.dg/opt/pr30590.C new file mode 100644 index 00000000000..42ae046db81 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr30590.C @@ -0,0 +1,40 @@ +/* { dg-do run } */ +/* { dg-options "-O" } */ +struct test +{ + int type; + char buffer[4242]; /* should trigger pass-by-reference */ +}; + +int flag = 0; + +struct test +reset (void) +{ + struct test retval; + retval.type = 1; + return retval; +} + +struct test +test (void) +{ + struct test result; + result.type = 0; + + for (int i = 0; i < 2; ++i) + { + struct test candidate = reset (); + if (flag) + result = candidate; + } + + return result; +} + +int +main (void) +{ + struct test result = test (); + return result.type; +} |

