
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;guest: gcc/4.2.2/gcc/testsuite/gcc.c-torture/execute/20000801-2.c:7-7 on Wed Jan 16 15:51:23 +0900 20088: }; 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: }リスト構造 : 次の構造体変数のアドレス ITB2 by mk