Russ Cox | fd178d6 | 2013-02-05 07:00:38 -0500 | [diff] [blame] | 1 | // errorcheck -0 -m |
| 2 | |
| 3 | // Copyright 2013 The Go Authors. All rights reserved. |
| 4 | // Use of this source code is governed by a BSD-style |
| 5 | // license that can be found in the LICENSE file. |
| 6 | |
| 7 | // Check go:noescape annotations. |
| 8 | |
| 9 | package p |
| 10 | |
| 11 | // The noescape comment only applies to the next func, |
| 12 | // which must not have a body. |
| 13 | |
| 14 | //go:noescape |
| 15 | |
| 16 | func F1([]byte) |
| 17 | |
| 18 | func F2([]byte) |
| 19 | |
| 20 | func G() { |
| 21 | var buf1 [10]byte |
| 22 | F1(buf1[:]) // ERROR "buf1 does not escape" |
| 23 | |
| 24 | var buf2 [10]byte // ERROR "moved to heap: buf2" |
| 25 | F2(buf2[:]) // ERROR "buf2 escapes to heap" |
| 26 | } |