diff mbox

Use better variable names in MIPS syscall macros [committed]

Message ID alpine.DEB.2.10.1506022039200.2704@digraph.polyomino.org.uk
State New
Headers show

Commit Message

Joseph Myers June 2, 2015, 8:39 p.m. UTC
Carlos noted in
<https://sourceware.org/ml/libc-alpha/2015-05/msg00680.html> that
various ports use potentially problematic short variables names in
their syscall macros, which could shadow variables with the same name
from containing scopes.

This patch fixes variables called err and ret in MIPS macros.  (I left
result_var and _sys_result - separate variables in different macros,
which need separate names - alone.)

Tested for mips64 (all three ABIs) that installed stripped shared
libraries are unchanged by this patch.  Committed.

2015-06-02  Joseph Myers  <joseph@codesourcery.com>

	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (INLINE_SYSCALL):
	Use variable name _sc_err instead of err.
	[__mips16] (INTERNAL_SYSCALL_NCS): Use variable name _sc_ret
	instead of ret.
	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
	(INLINE_SYSCALL): Use variable name _sc_err instead of err.
	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
	(INLINE_SYSCALL): Likewise.

Comments

Carlos O'Donell June 3, 2015, 1:05 p.m. UTC | #1
On 06/02/2015 04:39 PM, Joseph Myers wrote:
> Carlos noted in
> <https://sourceware.org/ml/libc-alpha/2015-05/msg00680.html> that
> various ports use potentially problematic short variables names in
> their syscall macros, which could shadow variables with the same name
> from containing scopes.
> 
> This patch fixes variables called err and ret in MIPS macros.  (I left
> result_var and _sys_result - separate variables in different macros,
> which need separate names - alone.)
> 
> Tested for mips64 (all three ABIs) that installed stripped shared
> libraries are unchanged by this patch.  Committed.
> 
> 2015-06-02  Joseph Myers  <joseph@codesourcery.com>
> 
> 	* sysdeps/unix/sysv/linux/mips/mips32/sysdep.h (INLINE_SYSCALL):
> 	Use variable name _sc_err instead of err.
> 	[__mips16] (INTERNAL_SYSCALL_NCS): Use variable name _sc_ret
> 	instead of ret.
> 	* sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
> 	(INLINE_SYSCALL): Use variable name _sc_err instead of err.
> 	* sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
> 	(INLINE_SYSCALL): Likewise.

Thanks for this, I actually have a blanket change to make all sysdeps
use _sc_ret and _sc_err for consistency. I'll post that shortly today.

Cheers,
Carlos.
diff mbox

Patch

diff --git a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
index e5025ba..a2aa38d 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips32/sysdep.h
@@ -49,11 +49,11 @@ 
    call.  */
 #undef INLINE_SYSCALL
 #define INLINE_SYSCALL(name, nr, args...)                               \
-  ({ INTERNAL_SYSCALL_DECL(err);					\
-     long result_var = INTERNAL_SYSCALL (name, err, nr, args);		\
-     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )			\
+  ({ INTERNAL_SYSCALL_DECL (_sc_err);					\
+     long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args);	\
+     if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) )		\
        {								\
-	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));	\
+	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err));	\
 	 result_var = -1L;						\
        }								\
      result_var; })
@@ -111,10 +111,10 @@ 
 
 # define INTERNAL_SYSCALL_NCS(number, err, nr, args...)			\
 ({									\
-	union __mips16_syscall_return ret;				\
-	ret.val = __mips16_syscall##nr (args, number);			\
-	err = ret.reg.v1;						\
-	ret.reg.v0;							\
+	union __mips16_syscall_return _sc_ret;				\
+	_sc_ret.val = __mips16_syscall##nr (args, number);		\
+	err = _sc_ret.reg.v1;						\
+	_sc_ret.reg.v0;							\
 })
 
 # define INTERNAL_SYSCALL_MIPS16(number, err, nr, args...)		\
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
index ac663bc..4c28af6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/sysdep.h
@@ -51,11 +51,11 @@ 
    call.  */
 #undef INLINE_SYSCALL
 #define INLINE_SYSCALL(name, nr, args...)				\
-  ({ INTERNAL_SYSCALL_DECL(err);					\
-     long result_var = INTERNAL_SYSCALL (name, err, nr, args);		\
-     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )			\
+  ({ INTERNAL_SYSCALL_DECL (_sc_err);					\
+     long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args);	\
+     if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) )		\
        {								\
-	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));	\
+	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err));	\
 	 result_var = -1L;						\
        }								\
      result_var; })
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
index 312f210..1fc038c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/sysdep.h
@@ -47,11 +47,11 @@ 
    call.  */
 #undef INLINE_SYSCALL
 #define INLINE_SYSCALL(name, nr, args...)				\
-  ({ INTERNAL_SYSCALL_DECL(err);					\
-     long result_var = INTERNAL_SYSCALL (name, err, nr, args);		\
-     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )			\
+  ({ INTERNAL_SYSCALL_DECL (_sc_err);					\
+     long result_var = INTERNAL_SYSCALL (name, _sc_err, nr, args);	\
+     if ( INTERNAL_SYSCALL_ERROR_P (result_var, _sc_err) )		\
        {								\
-	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));	\
+	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, _sc_err));	\
 	 result_var = -1L;						\
        }								\
      result_var; })