make mips64 a_sc_p atomic primitive's asm constraints work with clang
authorRich Felker <dalias@aerifal.cx>
Fri, 11 Mar 2016 05:02:10 +0000 (00:02 -0500)
committerRich Felker <dalias@aerifal.cx>
Fri, 11 Mar 2016 05:02:10 +0000 (00:02 -0500)
apparently clang does not accept matching-register input and output
constraints that differ in size (32-bit vs 64-bit).

based on patch by Jaydeep Patil.

arch/mips64/atomic_arch.h

index 49d9884ab50ddc3fff4f1283cb008cfd708b2179..8664e11c79daeaa1feb0b69638536f28049ea14a 100644 (file)
@@ -31,7 +31,7 @@ static inline void *a_ll_p(volatile long *p)
 #define a_sc_p a_sc_p
 static inline int a_sc_p(volatile long *p, void *v)
 {
-       int r;
+       long r;
        __asm__ __volatile__ (
                "scd %0, %1"
                : "=r"(r), "=m"(*p) : "0"(v) : "memory");