3 // Copyright 2020 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.
7 // Verify that misplaced directives are diagnosed.
9 //go:noinline // ERROR "misplaced compiler directive"
11 //go:noinline // ERROR "misplaced compiler directive"
21 //go:noinline // ERROR "misplaced compiler directive"
23 //go:noinline // ERROR "misplaced compiler directive"
26 //go:noinline // ERROR "misplaced compiler directive"
29 //go:noinline // ERROR "misplaced compiler directive"
36 //go:notinheap // ERROR "misplaced compiler directive"
39 //go:noinline // ERROR "misplaced compiler directive"
40 T2 int //go:notinheap // ERROR "misplaced compiler directive"
44 //go:noinline // ERROR "misplaced compiler directive"
48 //go:notinheap // ERROR "misplaced compiler directive"
54 //go:notinheap // ERROR "misplaced compiler directive"
59 func g() {} //go:noinline // ERROR "misplaced compiler directive"
61 // ok: attached to f (duplicated yes, but ok)
66 //go:noinline // ERROR "misplaced compiler directive"
69 //go:noinline // ERROR "misplaced compiler directive"
71 _ = x //go:noinline // ERROR "misplaced compiler directive"
73 //go:noinline // ERROR "misplaced compiler directive"
74 var y int //go:noinline // ERROR "misplaced compiler directive"
75 //go:noinline // ERROR "misplaced compiler directive"
78 //go:noinline // ERROR "misplaced compiler directive"
81 //go:noinline // ERROR "misplaced compiler directive"
84 //go:noinline // ERROR "misplaced compiler directive"
90 // someday there might be a directive that can apply to type aliases, but go:notinheap doesn't.
91 //go:notinheap // ERROR "misplaced compiler directive"
95 //go:noinline // ERROR "misplaced compiler directive"