diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2001-07-10 09:05:18 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2001-07-10 09:05:18 -0400 |
commit | 352411927ee72322eb6a99a8b4ff489939b31cdd (patch) | |
tree | ce607e9f28be94316958753878bc0c4de6f43652 /gcc | |
parent | 2253525c31f671de4be799d11abb46b244548180 (diff) | |
download | gcc-352411927ee72322eb6a99a8b4ff489939b31cdd.zip gcc-352411927ee72322eb6a99a8b4ff489939b31cdd.tar.gz gcc-352411927ee72322eb6a99a8b4ff489939b31cdd.tar.bz2 |
semantics.c (cp_expand_stmt): Fix for null current_function_return_value.
* semantics.c (cp_expand_stmt): Fix for null
current_function_return_value.
From-SVN: r43900
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 452ba42..7473cab 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-07-10 Jason Merrill <jason_merrill@redhat.com> + + * semantics.c (cp_expand_stmt): Fix for null + current_function_return_value. + 2001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl> * call.c (build_op_delete_call): Initialize fn. @@ -7,6 +12,8 @@ (get_primary_binfo): Initialize result. * init.c (build_java_class_ref): Initialize name. +2001-07-09 Erik Rozendaal <dlr@acm.org> + * typeck.c (unary_complex_lvalue): Do not duplicate the argument to modify, pre-, or post-increment when used as an lvalue and when the argument has side-effects. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 66f36ab..c82d291 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2156,8 +2156,10 @@ cp_expand_stmt (t) switch (TREE_CODE (t)) { case CLEANUP_STMT: - /* Don't destroy the chosen named return value. */ - if (CLEANUP_DECL (t) != current_function_return_value) + if (CLEANUP_DECL (t) + && CLEANUP_DECL (t) == current_function_return_value) + /* Don't destroy the chosen named return value. */; + else genrtl_decl_cleanup (CLEANUP_DECL (t), CLEANUP_EXPR (t)); break; |