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