| // compile | |
| // Copyright 2017 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. | |
| // Issue 20335: don't reorder loads with stores. | |
| // This test should fail on the ssacheck builder | |
| // without the fix in the CL that added this file. | |
| // TODO: check the generated assembly? | |
| package a | |
| import "sync/atomic" | |
| func f(p, q *int32) bool { | |
| x := *q | |
| return atomic.AddInt32(p, 1) == x | |
| } |