modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue19201.go (about) 1 // run 2 3 // Copyright 2017 The Go Authors. All rights reserved. 4 // Use of this source code is governed by a BSD-style 5 // license that can be found in the LICENSE file. 6 7 package main 8 9 import ( 10 "encoding/binary" 11 ) 12 13 var ( 14 ch1 = make(chan int) 15 ch2 = make(chan int) 16 17 bin = []byte("a\000\000\001") 18 want = binary.BigEndian.Uint32(bin) 19 20 c consumer = noopConsumer{} 21 ) 22 23 type msg struct { 24 code uint32 25 } 26 27 type consumer interface { 28 consume(msg) 29 } 30 31 type noopConsumer struct{} 32 33 func (noopConsumer) consume(msg) {} 34 35 func init() { 36 close(ch1) 37 } 38 39 func main() { 40 var m msg 41 m.code = binary.BigEndian.Uint32(bin) 42 43 select { 44 case <-ch1: 45 c.consume(m) 46 if m.code != want { 47 // can not use m.code here, or it will work 48 panic("BigEndian read failed") 49 } 50 case <-ch2: 51 } 52 }