1// { dg-do compile } 2// { dg-additional-options "-fcompare-debug" } 3 4extern void fancy_abort () __attribute__ ((__noreturn__)); 5extern "C" { 6 struct __jmp_buf_tag { }; 7 typedef struct __jmp_buf_tag jmp_buf[1]; 8 extern int _setjmp (struct __jmp_buf_tag __env[1]) throw (); 9} 10extern void *gfc_state_stack; 11static jmp_buf eof_buf; 12static void push_state () 13{ 14 if (!gfc_state_stack) 15 fancy_abort (); 16} 17bool gfc_parse_file (void) 18{ 19 int seen_program=0; 20 if (_setjmp (eof_buf)) 21 return false; 22 if (seen_program) 23 goto duplicate_main; 24 seen_program = 1; 25 push_state (); 26 push_state (); 27duplicate_main: 28 return true; 29} 30