xref: /openbsd-src/gnu/usr.bin/gcc/gcc/testsuite/gcc.c-torture/execute/20000801-2.c (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1 extern void abort(void);
2 extern void exit(int);
3 int bar(void);
4 int baz(void);
5 
6 struct foo {
7   struct foo *next;
8 };
9 
10 struct foo *test(struct foo *node)
11 {
12   while (node) {
13     if (bar() && !baz())
14       break;
15     node = node->next;
16   }
17   return node;
18 }
19 
20 int bar (void)
21 {
22   return 0;
23 }
24 
25 int baz (void)
26 {
27   return 0;
28 }
29 
30 int main(void)
31 {
32   struct foo a, b, *c;
33 
34   a.next = &b;
35   b.next = (struct foo *)0;
36   c = test(&a);
37   if (c)
38     abort();
39   exit (0);
40 }
41