internal compiler error: in ix86_secondary_memory_needed, at config/i386/i386.c:15963
is triggered by my (invalid) attempt at x86-64 inline assembly: static inline void* CMPXCHG_PTR( void* volatile * dest, void* newValue, void* comp ) { void* prev; __asm__ __volatile__( LOCK "cmpxchgq %1,%2" : "=rax"(prev) : "r"(newValue), "m"(*__xg(dest)), "0"(comp) : "memory"); return prev; } in particular, the "=rax" part triggers it. Same result on both gcc 4.1.1 and 4.1.0 (SUSE Linux) (different line number for the latter: 16291). It looks similar to bug #26655 -- Summary: ICE on invalid inline x86-64 assembly, in ix86_secondary_memory_needed Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jbemmel at lucent dot com GCC host triplet: x86_64-suse-linux GCC target triplet: x86_64-suse-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28893