1var<workgroup> a : i32;
2var<workgroup> b : i32;
3var<workgroup> c : i32; // unused
4
5fn uses_a() {
6  a = a + 1;
7}
8
9fn uses_b() {
10  b = b * 2;
11}
12
13fn uses_a_and_b() {
14  b = a;
15}
16
17fn no_uses() {
18}
19
20fn outer() {
21  a = 0;
22  uses_a();
23  uses_a_and_b();
24  uses_b();
25  no_uses();
26}
27
28[[stage(compute), workgroup_size(1)]]
29fn main1() {
30  a = 42;
31  uses_a();
32}
33
34[[stage(compute), workgroup_size(1)]]
35fn main2() {
36  b = 7;
37  uses_b();
38}
39
40[[stage(compute), workgroup_size(1)]]
41fn main3() {
42  outer();
43  no_uses();
44}
45
46[[stage(compute), workgroup_size(1)]]
47fn main4() {
48  no_uses();
49}
50