compiler: support go:noescape cross package
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 9 Jan 2018 23:26:27 +0000 (23:26 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 9 Jan 2018 23:26:27 +0000 (23:26 +0000)
commit41a6da2de5102b6052175c82ad2fb2357c9eceab
treee71a915eadaba1eee40d3e5f5dd7423b0e17031e
parente732b4248592cc992eddcd00d37c6457d99381e7
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

From-SVN: r256405
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/escape.cc
gcc/go/gofrontend/gogo.cc
gcc/go/gofrontend/gogo.h