When an identifier has been used in an inline declaration subsequent renames of it are ignored. That used to work with gcc 3.4 and still works on i386 and ppc at least. This breaks building glibc. $ cat asm.c extern int foo (void); extern inline int bar (void) { return foo (); } extern __typeof (foo) foo __asm__ ("mumble"); int foobar (void) { return bar (); } $ gcc-4.0 -O -S asm.c asm.c:7: warning: asm declaration ignored due to conflict with previous rename $ grep mumble asm.s $ grep foo asm.s .global foobar# .proc foobar# foobar: br.call.sptk.many b0 = foo# .endp foobar#
-- Summary: [4.0 regression] asm declaration ignored due to conflict with previous rename Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: schwab at suse dot de CC: gcc-bugs at gcc dot gnu dot org GCC target triplet: ia64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17982