GCC uses local label names .L1, .L2, etc. on this platform. However these same assembly labels are used for functions named "L1" or "L2".
[EMAIL PROTECTED] wolfgang $ cat L.c int L2(int x) { if(x > 5) return -42; else return 42; } [EMAIL PROTECTED] wolfgang $ gcc -c L.c /tmp/ccL2lhwX.s: Assembler messages: /tmp/ccL2lhwX.s:26: Error: symbol `.L2' is already defined Observed on gentoo powerpc64; also observed on a gcc-3.4.2 cross-compiling from powerpc-apple- darwin to powerpc64-unknown-linux. -- Summary: local label names can collide with function names Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: wolfgang dot thaller at gmx dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: powerpc64-unknown-linux GCC host triplet: powerpc64-unknown-linux GCC target triplet: powerpc64-unknown-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18603