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