OSDN Git Service

Don't delete old arguments when lowering varargs.
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 Feb 2011 15:42:55 +0000 (15:42 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 24 Feb 2011 15:42:55 +0000 (15:42 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@170474 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/go/gofrontend/expressions.cc

index 259faa1..cebcbca 100644 (file)
@@ -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;
        }
     }