compiler: support go:noescape cross package
commit58abbf7964f8e5807e76ef9800fb081a8904ca62
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2018 23:26:27 +0000 (9 23:26 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 9 Jan 2018 23:26:27 +0000 (9 23:26 +0000)
treee71a915eadaba1eee40d3e5f5dd7423b0e17031e
parent72bf0e6e47cd845aa54e3047df7ba168b28cdb77
compiler: support go:noescape cross package

    CL 83876 added support of go:noescape pragma, but it only works
    for functions called from the same package. The pragma did not
    take effect for exported functions that are not called from
    the same package. The reason is that top level function
    declarations are not traversed, and only reached from calls
    from other functions. This CL adds this support. The Traverse
    class is extended with a mode to traverse function declarations.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@256405 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/escape.cc
gcc/go/gofrontend/gogo.cc
gcc/go/gofrontend/gogo.h