| // Copyright 2015 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 10253: cmd/gc: incorrect escape analysis of closures |
| // Partial call x.foo was not promoted to heap. |
| // Create a new goroutine to get a default-size stack segment. |
| func clos(x func()) func() { |
| x() // This statement crashed, because the partial call was allocated on the old stack. |
| // Grow stack so that partial call x becomes invalid if allocated on stack. |
| // Spoil the previous stack segment. |