blob: 3dc15b537334d88f1ed3b8e60f4206f3009a3825 (
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
35
|
/* Verify that the CALL sideeffect isn't optimized away. */
/* Contributed by Greg Parker 25 Jan 2005 <gparker@apple.com> */
#include <stdlib.h>
#include <stdio.h>
struct parse {
char *next;
char *end;
int error;
};
int seterr(struct parse *p, int err)
{
p->error = err;
return 0;
}
void bracket_empty(struct parse *p)
{
if (((p->next < p->end) && (*p->next++) == ']') || seterr(p, 7)) { }
}
int main(int argc __attribute__((unused)), char **argv __attribute__((unused)))
{
struct parse p;
p.next = p.end = (char *)0x12345;
p.error = 0;
bracket_empty(&p);
if (p.error != 7)
abort ();
return 0;
}
|