| // compile |
| |
| // Copyright 2018 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Triggers a bug in writebarrier, which inserts one |
| // between (first block) OpAddr x and (second block) a VarDef x, |
| // which are then in the wrong order and unable to be |
| // properly scheduled. |
| |
| package q |
| |
| var S interface{} |
| |
| func F(n int) { |
| fun := func(x int) int { |
| S = 1 |
| return n |
| } |
| i := fun(([]int{})[n]) |
| |
| var fc [2]chan int |
| S = (([1][2]chan int{fc})[i][i]) |
| } |