• Matthew Dempsky's avatar
    cmd/compile: skip escape analysis diagnostics for OADDR · abefcac1
    Matthew Dempsky authored
    For most nodes (e.g., OPTRLIT, OMAKESLICE, OCONVIFACE), escape
    analysis prints "escapes to heap" or "does not escape" to indicate
    whether that node's allocation can be heap or stack allocated.
    
    These messages are also emitted for OADDR, even though OADDR does not
    actually allocate anything itself. Moreover, it's redundant because
    escape analysis already prints "moved to heap" diagnostics when an
    OADDR node like "&x" causes x to require heap allocation.
    
    Because OADDR nodes don't allocate memory, my escape analysis rewrite
    doesn't naturally emit the "escapes to heap" / "does not escape"
    diagnostics for them. It's also non-trivial to replicate the exact
    semantics esc.go uses for OADDR.
    
    Since there are so many of these messages, I'm disabling them in this
    CL by themselves. I modified esc.go to suppress the Warnl calls
    without any other behavior changes, and then used a shell script to
    automatically remove any ERROR messages mentioned by run.go in
    "missing error" or "no match for" lines.
    
    Fixes #16300.
    Updates #23109.
    
    Change-Id: I3993e2743c3ff83ccd0893f4e73b366ff8871a57
    Reviewed-on: https://go-review.googlesource.com/c/go/+/170319
    Run-TryBot: Matthew Dempsky <mdempsky@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    Reviewed-by: default avatarDavid Chase <drchase@google.com>
    abefcac1
main.go 6.79 KB