2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 20050125-1.c
blob3dc15b537334d88f1ed3b8e60f4206f3009a3825
1 /* Verify that the CALL sideeffect isn't optimized away. */
2 /* Contributed by Greg Parker 25 Jan 2005 <gparker@apple.com> */
4 #include <stdlib.h>
5 #include <stdio.h>
7 struct parse {
8 char *next;
9 char *end;
10 int error;
13 int seterr(struct parse *p, int err)
15 p->error = err;
16 return 0;
19 void bracket_empty(struct parse *p)
21 if (((p->next < p->end) && (*p->next++) == ']') || seterr(p, 7)) { }
24 int main(int argc __attribute__((unused)), char **argv __attribute__((unused)))
26 struct parse p;
27 p.next = p.end = (char *)0x12345;
29 p.error = 0;
30 bracket_empty(&p);
31 if (p.error != 7)
32 abort ();
34 return 0;