• David Chase's avatar
    cmd/compile: modify swt.go to skip repeated walks of switch · 28fb8c69
    David Chase authored
    The compiler appears to contain several squirrelly corner
    cases where nodes are double walked, some where new nodes
    are created from walked parts.  Rather than trust that we
    had searched hard enough for the last one, change
    exprSwitch.walk() to return immediately if it has already
    been walked.  This appears to be the only case where
    double-walking a node is actually harmful.
    
    Fixes #29562.
    
    Change-Id: I0667e8769aba4c3236666cd836a934e256c0bfc5
    Reviewed-on: https://go-review.googlesource.com/c/156317
    Run-TryBot: David Chase <drchase@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    28fb8c69
swt.go 27.1 KB