1static int i, j;
2
3static void __attribute__((noinline,noclone))
4foo (void) { i = 1; }
5
6static void __attribute__((noinline,noclone))
7bar (void) { j = 1; }
8
9typedef void (*fn_t)(void);
10void escapeme (fn_t);
11fn_t getme (void);
12
13extern void link_error (void);
14
15int 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