diff options
author | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-24 15:42:55 +0000 |
---|---|---|
committer | ian <ian@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-02-24 15:42:55 +0000 |
commit | 425358147f377d74492226c2b396c28df65e1cb6 (patch) | |
tree | 1f4e52e7c3bc7a2bf936dc54ac19168ce4d593ad | |
parent | d0d394c3ba822605b425c61891d4f1e4b63ccf10 (diff) | |
download | gcc-425358147f377d74492226c2b396c28df65e1cb6.tar.gz |
Don't delete old arguments when lowering varargs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170474 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/go/gofrontend/expressions.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc index 259faa128ec..cebcbca7a07 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; } } |