| // Copyright 2011 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. |
| for i := 0; i < 10; i++ { |
| // 6g had a bug that caused select to pass &t to |
| // selectrecv before allocating the memory for t, |
| // which caused non-deterministic crashes. |
| // This test looks for the bug by checking that the |
| // value received actually ends up in t. |
| // If the allocation happens after storing through |
| // whatever garbage &t holds, the later reference |
| // to t in the case body will use the new pointer and |
| // not see the received value. |