Source file
test/nowritebarrier.go
Documentation: test
1
2
3
4
5
6
7
8
9 package p
10
11 type t struct {
12 f *t
13 }
14
15 var x t
16 var y *t
17
18
19 func a1() {
20 x.f = y
21 a2()
22 }
23
24
25 func a2() {
26 x.f = y
27 }
28
29
30 func b1() {
31 b2()
32 }
33
34
35 func b2() {
36 x.f = y
37 }
38
39
40
41
42 func c1() {
43 c2()
44 }
45
46
47 func c2() {
48 c3()
49 }
50
51 func c3() {
52 x.f = y
53 c4()
54 }
55
56
57 func c4() {
58 c2()
59 }
60
61
62 func d1() {
63 d2()
64 }
65
66 func d2() {
67 d3()
68 }
69
70
71 func d3() {
72 x.f = y
73 d4()
74 }
75
76
77 func d4() {
78 d2()
79 }
80
81
82 func systemstack(func()) {}
83
84
85 func e1() {
86 systemstack(e2)
87 systemstack(func() {
88 x.f = y
89 })
90 }
91
92 func e2() {
93 x.f = y
94 }
95
View as plain text