1extern void abort(void); 2extern void exit(int); 3int bar(void); 4int baz(void); 5 6struct foo { 7 struct foo *next; 8}; 9 10struct 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 20int bar (void) 21{ 22 return 0; 23} 24 25int baz (void) 26{ 27 return 0; 28} 29 30int 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