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

Reply via email to