aboutsummaryrefslogtreecommitdiff
path: root/gcc/go
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2011-02-24 15:42:55 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2011-02-24 15:42:55 +0000
commit01bd5703f577e2c3331c27c623d7a37c85ca2ffa (patch)
tree1f4e52e7c3bc7a2bf936dc54ac19168ce4d593ad /gcc/go
parent0cba839e42ca0342306ccfff41713b19b8b9087b (diff)
downloadgcc-01bd5703f577e2c3331c27c623d7a37c85ca2ffa.zip
gcc-01bd5703f577e2c3331c27c623d7a37c85ca2ffa.tar.gz
gcc-01bd5703f577e2c3331c27c623d7a37c85ca2ffa.tar.bz2
Don't delete old arguments when lowering varargs.
From-SVN: r170474
Diffstat (limited to 'gcc/go')
-rw-r--r--gcc/go/gofrontend/expressions.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 259faa1..cebcbca 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -8281,8 +8281,9 @@ Call_expression::do_lower(Gogo* gogo, Named_object* function, int)
for (size_t i = 0; i < rc; ++i)
args->push_back(Expression::make_call_result(call, i));
// We can't return a new call expression here, because this
- // one may be referenced by Call_result expressions. FIXME.
- delete this->args_;
+ // one may be referenced by Call_result expressions. We
+ // also can't delete the old arguments, because we may still
+ // traverse them somewhere up the call stack. FIXME.
this->args_ = args;
}
}