diff options
| author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-09 10:50:43 +0000 |
|---|---|---|
| committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-10-09 10:50:43 +0000 |
| commit | 3653e6b108a5f41ff3f0db6d0fa073795bf262cb (patch) | |
| tree | bb35efd363190a946eca81413b98aaaf4cacab4d | |
| parent | 349ed45df1491d5453e21e12bae44db1964cfcc6 (diff) | |
| download | ppe42-gcc-3653e6b108a5f41ff3f0db6d0fa073795bf262cb.tar.gz ppe42-gcc-3653e6b108a5f41ff3f0db6d0fa073795bf262cb.zip | |
2014-10-09 Richard Biener <rguenther@suse.de>
PR tree-optimization/61969
* tree-nrv.c (pass_nrv::execute): Properly test for automatic
variables.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@216037 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | gcc/tree-nrv.c | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2ef97b2a1dd..4c05cf4c3b8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-10-09 Richard Biener <rguenther@suse.de> + + PR tree-optimization/61969 + * tree-nrv.c (pass_nrv::execute): Properly test for automatic + variables. + 2014-10-09 Uros Bizjak <ubizjak@gmail.com> Backport from mainline diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c index b443388a2a9..028ac9af7c2 100644 --- a/gcc/tree-nrv.c +++ b/gcc/tree-nrv.c @@ -187,8 +187,7 @@ tree_nrv (void) same type and alignment as the function's result. */ if (TREE_CODE (found) != VAR_DECL || TREE_THIS_VOLATILE (found) - || DECL_CONTEXT (found) != current_function_decl - || TREE_STATIC (found) + || !auto_var_in_fn_p (found, current_function_decl) || TREE_ADDRESSABLE (found) || DECL_ALIGN (found) > DECL_ALIGN (result) || !useless_type_conversion_p (result_type, |

