In this sample, which includes inline assembly code, GCC produces assembly that uses 64-bit registers when the target is 32-bit code. The assembler complains:
foo.c: Assembler messages: foo.c:17: Error: bad register name `%dil' -- Summary: compiling inline assembly for ia32 produces ia64 registers Product: gcc Version: 4.3.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at karrels dot org 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=37018