The following program: void Object (void) { void * jmpbuf_1[6]; void P (void) { { void * jmpbuf_3[6];
if (__builtin_setjmp (&jmpbuf_3)) goto nonlocal_exit_2; else (void) 0;; __builtin_longjmp (&jmpbuf_1, 1); nonlocal_exit_2:;; } } { if (__builtin_setjmp (&jmpbuf_1)) goto nonlocal_exit_0; else (void) 0;; P (); nonlocal_exit_0:;; } } int main(void) { Object (); } gives me: ../gcc-lin/prev-gcc/xgcc -B../gcc-lin/prev-gcc mjmp2.c/tmp/cc06O64A.o(.text+0x5a): In function `P.1525': : undefined reference to `.L8' collect2: ld returned 1 exit status Using gcc-4.2-20060401. The problem also shows up with gcc-4.0.2 and gcc-4.1.0 on amd64. Also the problem shows in the output of a cross-compiler targetting powerpc-apple-darwin7. The original problem was discovered in GNU Pascal on powerpc-apple-darwin7 and the program above tries to reproduce Pascal problem. The program compiles using gcc-3.4.4. -- Summary: Missing label in a nested function Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: ada AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hebisch at math dot uni dot wroc dot pl GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26983