Procházet zdrojové kódy

INLINE_SYSCALL_NCS: scope out local vars to avoid conflicts

The INLINE_SYSCALL_NCS() macro was using "res" and "err" as local variable
names, but this caused conflicts with some code (like clock_getres) whose
arguments were named the same.

libc/sysdeps/linux/common/clock_getres.c: In function 'clock_getres':
libc/sysdeps/linux/common/clock_getres.c:15: warning: 'res' is used uninitialized in this function

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger před 15 roky
rodič
revize
ddc61875b4

+ 6 - 6
libc/sysdeps/linux/common/bits/syscalls-common.h

@@ -38,13 +38,13 @@
 #ifndef INLINE_SYSCALL_NCS
 # define INLINE_SYSCALL_NCS(name, nr, args...)				\
 ({									\
-	INTERNAL_SYSCALL_DECL(err);					\
-	long res = INTERNAL_SYSCALL_NCS(name, err, nr, args);		\
-	if (unlikely(INTERNAL_SYSCALL_ERROR_P(res, err))) {		\
-		__set_errno(INTERNAL_SYSCALL_ERRNO(res, err));		\
-		res = -1L;						\
+	INTERNAL_SYSCALL_DECL(__err);					\
+	long __res = INTERNAL_SYSCALL_NCS(name, __err, nr, args);	\
+	if (unlikely(INTERNAL_SYSCALL_ERROR_P(__res, __err))) {		\
+		__set_errno(INTERNAL_SYSCALL_ERRNO(__res, __err));	\
+		__res = -1L;						\
 	}								\
-	res;								\
+	__res;								\
 })
 #endif