aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2001-07-10 09:05:18 -0400
committerJason Merrill <jason@gcc.gnu.org>2001-07-10 09:05:18 -0400
commit352411927ee72322eb6a99a8b4ff489939b31cdd (patch)
treece607e9f28be94316958753878bc0c4de6f43652 /gcc
parent2253525c31f671de4be799d11abb46b244548180 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/cp/semantics.c6
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;