• Russ Cox's avatar
    cmd/gc: fix order of channel evaluation of receive channels · 20e97677
    Russ Cox authored
    Normally, an expression of the form x.f or *y can be reordered
    with function calls and communications.
    
    Select is stricter than normal: each channel expression is evaluated
    in source order. If you have case <-x.f and case <-foo(), then if the
    evaluation of x.f causes a panic, foo must not have been called.
    (This is in contrast to an expression like x.f + foo().)
    
    Enforce this stricter ordering.
    
    Fixes #8336.
    
    LGTM=dvyukov
    R=golang-codereviews, dvyukov
    CC=golang-codereviews, r
    https://golang.org/cl/126570043
    20e97677
Name
Last commit
Last update
..
cmd Loading commit data...
lib9 Loading commit data...
libbio Loading commit data...
liblink Loading commit data...
pkg Loading commit data...
Make.dist Loading commit data...
all.bash Loading commit data...
all.bat Loading commit data...
all.rc Loading commit data...
androidtest.bash Loading commit data...
clean.bash Loading commit data...
clean.bat Loading commit data...
clean.rc Loading commit data...
make.bash Loading commit data...
make.bat Loading commit data...
make.rc Loading commit data...
nacltest.bash Loading commit data...
race.bash Loading commit data...
race.bat Loading commit data...
run.bash Loading commit data...
run.bat Loading commit data...
run.rc Loading commit data...
sudo.bash Loading commit data...