diff -u -r gc-7.2alpha6.old/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h gc-7.2alpha6/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h
--- gc-7.2alpha6.old/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h	2011-06-03 11:17:00.000000000 +0200
+++ gc-7.2alpha6/libatomic_ops/src/atomic_ops/sysdeps/gcc/x86_64.h	2011-08-21 22:38:56.000000000 +0200
@@ -110,7 +110,7 @@
   /* Note: the "xchg" instruction does not need a "lock" prefix */
   __asm__ __volatile__("xchgb %0, %1"
                 : "=q"(oldval), "=m"(*addr)
-                : "0"(0xff), "m"(*addr) : "memory");
+		: "0"((unsigned char)0xff), "m"(*addr) : "memory");
   return (AO_TS_VAL_t)oldval;
 }
 #define AO_HAVE_test_and_set_full
