5 // Test of context-sensitive treatment of certain function calls,
6 // e.g. static calls to simple accessor methods.
10 type T struct{ x *int }
12 func (t *T) SetX(x *int) { t.x = x }
13 func (t *T) GetX() *int { return t.x }
19 print(t1.GetX()) // @pointsto main.a
20 print(t2.GetX()) // @pointsto main.b
24 id := func(x *int) *int {
25 print(x) // @pointsto main.a | main.b
28 print(id(&a)) // @pointsto main.a
29 print(id(&b)) // @pointsto main.b
31 // Same again, but anon func has free vars.
32 var c int // @line context2c
33 id2 := func(x *int) (*int, *int) {
34 print(x) // @pointsto main.a | main.b
38 print(p) // @pointsto main.a
39 print(q) // @pointsto c@context2c:6
41 print(r) // @pointsto main.b
42 print(s) // @pointsto c@context2c:6