diff options
| author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-09 14:31:28 +0000 |
|---|---|---|
| committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-02-09 14:31:28 +0000 |
| commit | bb60bb974d8408320457ab4e8b9fc829f121eaac (patch) | |
| tree | 414530352d848afa2d7eae2febf33dbf2fa85e93 | |
| parent | 1e4039e06166fda0b022ecc44d372b7e1a536a10 (diff) | |
| download | ppe42-gcc-bb60bb974d8408320457ab4e8b9fc829f121eaac.tar.gz ppe42-gcc-bb60bb974d8408320457ab4e8b9fc829f121eaac.zip | |
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/26179
* g++.dg/opt/pr26179.C: New test.
2006-02-09 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/26179
* tree-ssa-pre.c (create_component_ref_by_pieces):
Handle RETURN_DECL like VAR_DECL.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110801 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/testsuite/g++.dg/opt/pr26179.C | 22 | ||||
| -rw-r--r-- | gcc/tree-ssa-pre.c | 1 |
4 files changed, 34 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 57e720cb9ad..c339897488a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu> + PR tree-opt/26179 + * tree-ssa-pre.c (create_component_ref_by_pieces): + Handle RETURN_DECL like VAR_DECL. + +2006-02-09 Andrew Pinski <pinskia@physics.uc.edu> + PR middle-end/26134 * fold-const.c (fold_indirect_ref_1): Fold "*(foo *)&complexfoo" to "__real__ complexfoo" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dd78250d0ed..d7ea0007e48 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2006-02-09 Andrew Pinski <pinskia@physics.uc.edu> + PR tree-opt/26179 + * g++.dg/opt/pr26179.C: New test. + +2006-02-09 Andrew Pinski <pinskia@physics.uc.edu> + PR middle-end/26134 * gcc.dg/tree-ssa/complex-3.c: New test. diff --git a/gcc/testsuite/g++.dg/opt/pr26179.C b/gcc/testsuite/g++.dg/opt/pr26179.C new file mode 100644 index 00000000000..32cd7a00ea9 --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr26179.C @@ -0,0 +1,22 @@ +/* The problem here is that Load PRE on the tree level + forgot to handle RETURN_DECL which causes us to ICE. */ + +// { dg-do compile } +// { dg-options "-O2" } + +struct a +{ + int i; +}; +void h(struct a&); +void l(void); + +struct a g(void) +{ + struct a fl; + h(fl); + if (fl.i) + l(); + fl.i+=2; + return fl; +} diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index d2edf218758..95df3887895 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -2161,6 +2161,7 @@ create_component_ref_by_pieces (basic_block block, tree expr, tree stmts) break; case VAR_DECL: case PARM_DECL: + case RESULT_DECL: case SSA_NAME: return genop; default: |

