The following program, when compiled with -fPIC option (on by default on Darwin) gives me duplicate label in assembler output: extern int printf(const char *, ...);
struct { int a[5];} jmp_buf; void f(void) { void g(void) { } if (__builtin_setjmp(&jmp_buf)) goto l; g(); printf("failed\n"); l:; } int main(void) { f(); return 0; } I can see duplicate label "L00000000001$pb" in the assemble output. Note that I have not set up full cross-compile environmet, I just configured gcc for i686-apple-darwin target. The build failed, but cc1 is built. This is a reduced test case. Original problem appeared in GNU Pascal in native compiler on i686-apple-darwin host. The problem is also present in gcc-3.3.6 (the label is called L1$pb) and in gcc-3.4.4. -- Summary: builtin_setjmp gives duplicate labels Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: hebisch at math dot uni dot wroc dot pl CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-apple-darwin http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22099