escape: Avoid allocation of varargs parameter.
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 6 Oct 2016 03:51:03 +0000 (03:51 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 6 Oct 2016 03:51:03 +0000 (03:51 +0000)
commita7773b4d0629c6ab0d8321c9b018f6a718bf232a
tree77833c482521ede307d11d30420a0d8a13b0d313
parentf779aeb8af7def1bb21eade301d546fe0297d9e6
escape: Avoid allocation of varargs parameter.

    There was a bug in the escape analysis that would cause
    the slice implicitly created to hold varargs parameters to always
    escape, as well as the appended to slice argument.  The intended
    behavior was that the elements of the appendee and appended to
    slice would escape to the heap.  Alongside of these issues,
    the varargs slice would also have a chance to be initialized to an
    invalid memory location if it were stack-allocated.  This has been
    fixed as well.

    Reviewed-on: https://go-review.googlesource.com/30450

From-SVN: r240826
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/escape.cc