• 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
..
5a Loading commit data...
5c Loading commit data...
5g Loading commit data...
5l Loading commit data...
6a Loading commit data...
6c Loading commit data...
6g Loading commit data...
6l Loading commit data...
8a Loading commit data...
8c Loading commit data...
8g Loading commit data...
8l Loading commit data...
addr2line Loading commit data...
api Loading commit data...
cc Loading commit data...
cgo Loading commit data...
dist Loading commit data...
fix Loading commit data...
gc Loading commit data...
go Loading commit data...
gofmt Loading commit data...
internal/objfile Loading commit data...
ld Loading commit data...
link Loading commit data...
nm Loading commit data...
objdump Loading commit data...
pack Loading commit data...
yacc Loading commit data...