diff options
author | Jason Merrill <jason@redhat.com> | 2001-06-18 12:15:12 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-06-18 12:15:12 -0400 |
commit | 0d97bf4c2c4e599beee17c3a99f6dfdd8884d09a (patch) | |
tree | 70263e15f7a28d4f44a057ee1783e8a0095c5f9a /libjava/java | |
parent | 923cbdc322ee080c02b94a95eece0618a2a78b47 (diff) | |
download | gcc-0d97bf4c2c4e599beee17c3a99f6dfdd8884d09a.zip gcc-0d97bf4c2c4e599beee17c3a99f6dfdd8884d09a.tar.gz gcc-0d97bf4c2c4e599beee17c3a99f6dfdd8884d09a.tar.bz2 |
Implement the Named Return Value optimization.
* c-common.h (RETURN_NULLIFIED_P): New macro.
* c-semantics.c (genrtl_return_stmt): Check it.
* cp-tree.h (struct cp_language_function): Add x_return_value.
(current_function_return_value): Now a macro.
* decl.c: Don't define it.
(define_label, finish_case_label): Don't clear it.
(init_decl_processing): Don't register it with GC.
* semantics.c (genrtl_finish_function): Don't check it for
no_return_label. Copy the RTL from the return value to
current_function_return_value and walk, calling...
(nullify_returns_r): ...this new fn.
* typeck.c (check_return_expr): Set current_function_return_value.
* expr.c (clear_storage): Set TREE_NOTHROW on the decl for memset.
(emit_block_move): Likewise.
From-SVN: r43445
Diffstat (limited to 'libjava/java')
0 files changed, 0 insertions, 0 deletions