ensure pointer decay in inline-asm arg for i386 syscall6
[musl] / arch / i386 / syscall_arch.h
index 2d64b0b..f2a8163 100644 (file)
@@ -50,7 +50,7 @@ static inline long __syscall5(long n, long a1, long a2, long a3, long a4, long a
 static inline long __syscall6(long n, long a1, long a2, long a3, long a4, long a5, long a6)
 {
        unsigned long __ret;
-       __asm__ __volatile__ ("push %6 ; call __vsyscall6 ; add $4,%%esp" : "=a"(__ret) : "a"(n), "d"(a1), "c"(a2), "D"(a3), "S"(a4), "g"((long[]){a5, a6}) : "memory");
+       __asm__ __volatile__ ("push %6 ; call __vsyscall6 ; add $4,%%esp" : "=a"(__ret) : "a"(n), "d"(a1), "c"(a2), "D"(a3), "S"(a4), "g"(0+(long[]){a5, a6}) : "memory");
        return __ret;
 }