| // 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. |
| |
| package r |
| |
| // f compiles into code where no stores remain in the two successors |
| // of a write barrier block; i.e., they are empty. Pre-fix, this |
| // results in an unexpected input to markUnsafePoints, that expects to |
| // see a pair of non-empty plain blocks. |
| func f() { |
| var i int |
| var s string |
| for len(s) < len(s) { |
| i++ |
| s = "a" |
| } |
| var b bool |
| var sa []string |
| for true { |
| sa = []string{""} |
| for b || i == 0 { |
| } |
| b = !b |
| _ = sa |
| } |
| } |