1 static int i, j;
2 
3 static void __attribute__((noinline,noclone))
foo(void)4 foo (void) { i = 1; }
5 
6 static void __attribute__((noinline,noclone))
bar(void)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 
main()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 }
35