• Josh Bleecher Snyder's avatar
    cmd/compile: avoid an assignment of n.Type in walk · 26be4b91
    Josh Bleecher Snyder authored
    In the future, walk will probably run concurrently
    with SSA construction. It is possible for walk
    to be walking a function node that is referred
    to by another function undergoing SSA construction.
    In that case, this particular assignment to n.Type
    is race-y.
    
    This assignment is also not necessary;
    evconst does not change the type of n.
    Both arguments to evconst must have the same type,
    and at the end of evconst, n is replaced with n.Left.
    
    Remove the assignment, and add a check to ensure
    that its removal remains correct.
    
    Updates #15756
    
    Change-Id: Id95faaff42d5abd76be56445d1d3e285775de8bf
    Reviewed-on: https://go-review.googlesource.com/38609
    Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    26be4b91
walk.go 84.3 KB