From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29537 invoked by alias); 20 Nov 2012 02:46:31 -0000 Received: (qmail 29447 invoked by uid 22791); 20 Nov 2012 02:46:31 -0000 X-SWARE-Spam-Status: No, hits=-4.0 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 20 Nov 2012 02:46:25 +0000 Received: from svr-orw-exc-10.mgc.mentorg.com ([147.34.98.58]) by relay1.mentorg.com with esmtp id 1Tadqy-0000MI-8s from joseph_myers@mentor.com for libc-ports@sourceware.org; Mon, 19 Nov 2012 18:46:24 -0800 Received: from SVR-IES-FEM-01.mgc.mentorg.com ([137.202.0.104]) by SVR-ORW-EXC-10.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.4675); Mon, 19 Nov 2012 18:46:23 -0800 Received: from digraph.polyomino.org.uk (137.202.0.76) by SVR-IES-FEM-01.mgc.mentorg.com (137.202.0.104) with Microsoft SMTP Server id 14.1.289.1; Tue, 20 Nov 2012 02:46:22 +0000 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.76) (envelope-from ) id 1Tadqv-0001Vr-64 for libc-ports@sourceware.org; Tue, 20 Nov 2012 02:46:21 +0000 Date: Tue, 20 Nov 2012 02:46:00 -0000 From: "Joseph S. Myers" To: Subject: Use parentheses around MIPS syscall macro arguments Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-11/txt/msg00074.txt.bz2 The MIPS o32 and n64 syscall macros fail to put parentheses around their arguments that are cast to (long), resulting in various warnings when what is cast is only part of the argument expression (for example, the condition of a conditional expression) and the final initializer has pointer rather than integer type. I've applied this patch to fix this. 2012-11-20 Joseph Myers * sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (internal_syscall1): Use parentheses around macro arguments. (internal_syscall2): Likewise. (internal_syscall3): Likewise. (internal_syscall4): Likewise. (internal_syscall5): Likewise. (internal_syscall6): Likewise. (internal_syscall7): Likewise. * sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h (internal_syscall1): Likewise. (internal_syscall2): Likewise. (internal_syscall3): Likewise. (internal_syscall4): Likewise. (internal_syscall5): Likewise. (internal_syscall6): Likewise. diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h index 1d6ab05..2b683a9 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h +++ b/ports/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h @@ -104,7 +104,7 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ + register long __a0 asm("$4") = (long) (arg1); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -126,8 +126,8 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -149,9 +149,9 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -173,10 +173,10 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ cs_init \ @@ -205,10 +205,10 @@ FORCE_FRAME_POINTER; \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ "subu\t$29, 32\n\t" \ @@ -219,7 +219,7 @@ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ - "r" ((long)arg5) \ + "r" ((long) (arg5)) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ @@ -234,10 +234,10 @@ FORCE_FRAME_POINTER; \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ "subu\t$29, 32\n\t" \ @@ -249,7 +249,7 @@ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ - "r" ((long)arg5), "r" ((long)arg6) \ + "r" ((long) (arg5)), "r" ((long) (arg6)) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ @@ -264,10 +264,10 @@ FORCE_FRAME_POINTER; \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ "subu\t$29, 32\n\t" \ @@ -280,7 +280,7 @@ ".set\treorder" \ : "=r" (__v0), "+r" (__a3) \ : input, "r" (__a0), "r" (__a1), "r" (__a2), \ - "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \ + "r" ((long) (arg5)), "r" ((long) (arg6)), "r" ((long) (arg7)) \ : __SYSCALL_CLOBBERS); \ err = __a3; \ _sys_result = __v0; \ diff --git a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h index 1d0b7b7..02f196a 100644 --- a/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h +++ b/ports/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h @@ -104,7 +104,7 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ + register long __a0 asm("$4") = (long) (arg1); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -126,8 +126,8 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -149,9 +149,9 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ register long __a3 asm("$7"); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ @@ -173,10 +173,10 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ cs_init \ @@ -197,11 +197,11 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ - register long __a4 asm("$8") = (long) arg5; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ + register long __a4 asm("$8") = (long) (arg5); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ cs_init \ @@ -222,12 +222,12 @@ \ { \ register long __v0 asm("$2") ncs_init; \ - register long __a0 asm("$4") = (long) arg1; \ - register long __a1 asm("$5") = (long) arg2; \ - register long __a2 asm("$6") = (long) arg3; \ - register long __a3 asm("$7") = (long) arg4; \ - register long __a4 asm("$8") = (long) arg5; \ - register long __a5 asm("$9") = (long) arg6; \ + register long __a0 asm("$4") = (long) (arg1); \ + register long __a1 asm("$5") = (long) (arg2); \ + register long __a2 asm("$6") = (long) (arg3); \ + register long __a3 asm("$7") = (long) (arg4); \ + register long __a4 asm("$8") = (long) (arg5); \ + register long __a5 asm("$9") = (long) (arg6); \ __asm__ volatile ( \ ".set\tnoreorder\n\t" \ cs_init \ -- Joseph S. Myers joseph@codesourcery.com