1 static int i, j;
2
3 static void __attribute__((noinline,noclone))
4 foo (void) { i = 1; }
5
6 static void __attribute__((noinline,noclone))
7 bar (void) { j = 1; }
8
9 typedef void (*fn_t)(void);
10 void escapeme (fn_t);
11 fn_t getme (void);
12
13 extern void link_error (void);
14
15 int main()
16 {
17 fn_t fn;
18 escapeme (foo);
19 fn = getme();
20
21 i = 0;
22 fn();
23 if (i != 1)
24 return 100;
25 j = 0;
26 fn();
27 if (j != 0)
28 link_error ();
29 bar();
30 if (j != 1)
31 return 200;
32
33 return 0;
34 }