[Patch] Fix 'set but not used' warnings in MIPS build
Steve Ellcey
sellcey at mips.com
Thu Jan 23 23:28:15 UTC 2014
While looking at the MIPS uclibc build, I notice there are a lot of warnings
about variables being set but not used. This has been brought up before:
http://lists.uclibc.org/pipermail/uclibc/2012-April/046639.html
But it doesn't look like anyone has submitted a patch so here is a patch
I created to get rid of the MIPS specific warnings. Is this something that
could be checked in?
Also, I was wondering if anyone knows why INTERNAL_SYSCALL_DECL (and other
INTERNAL_SYSCALL_* and internal_syscall* macros) are defined in both
libc/sysdeps/linux/mips/bits/syscalls.h and libc/sysdeps/linux/mips/sysdep.h?
Is one of these the 'right' place to define these macros? Should one
of them be including the other?
Steve Ellcey
sellcey at mips.com
diff --git a/libc/sysdeps/linux/mips/bits/atomic.h b/libc/sysdeps/linux/mips/bits/atomic.h
index 9a9f60f..e8d9264 100644
--- a/libc/sysdeps/linux/mips/bits/atomic.h
+++ b/libc/sysdeps/linux/mips/bits/atomic.h
@@ -135,22 +135,22 @@ typedef uintmax_t uatomic_max_t;
/* For all "bool" routines, we return FALSE if exchange succesful. */
#define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)) ; int __cmp; \
__arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
!__cmp; })
#define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
!__cmp; })
#define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
!__cmp; })
#define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
!__cmp; })
@@ -158,22 +158,22 @@ typedef uintmax_t uatomic_max_t;
successful or not. */
#define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
(__typeof (*mem))__prev; })
#define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
(__typeof (*mem))__prev; })
#define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
(__typeof (*mem))__prev; })
#define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
-({ __typeof (*mem) __prev; int __cmp; \
+({ __typeof (*mem) __prev __attribute__ ((unused)); int __cmp; \
__arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
(__typeof (*mem))__prev; })
diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h
index 944d038..53765a9 100644
--- a/libc/sysdeps/linux/mips/bits/syscalls.h
+++ b/libc/sysdeps/linux/mips/bits/syscalls.h
@@ -29,7 +29,7 @@
} \
result_var; })
-#define INTERNAL_SYSCALL_DECL(err) long err
+#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
diff --git a/libc/sysdeps/linux/mips/sysdep.h b/libc/sysdeps/linux/mips/sysdep.h
index 46b6c53..b553333 100644
--- a/libc/sysdeps/linux/mips/sysdep.h
+++ b/libc/sysdeps/linux/mips/sysdep.h
@@ -144,7 +144,7 @@ L(syse1):
result_var; })
#undef INTERNAL_SYSCALL_DECL
-#define INTERNAL_SYSCALL_DECL(err) long err
+#define INTERNAL_SYSCALL_DECL(err) long err __attribute__ ((unused))
#undef INTERNAL_SYSCALL_ERROR_P
#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
diff --git a/libpthread/nptl/sysdeps/mips/tls.h b/libpthread/nptl/sysdeps/mips/tls.h
index c522f21..b82bdc9 100644
--- a/libpthread/nptl/sysdeps/mips/tls.h
+++ b/libpthread/nptl/sysdeps/mips/tls.h
@@ -120,7 +120,7 @@ typedef struct
operation can cause a failure 'errno' must not be touched. */
# define TLS_INIT_TP(tcbp, secondcall) \
({ INTERNAL_SYSCALL_DECL (err); \
- long result_var; \
+ long result_var __attribute__((unused)); \
result_var = INTERNAL_SYSCALL (set_thread_area, err, 1, \
(char *) (tcbp) + TLS_TCB_OFFSET); \
INTERNAL_SYSCALL_ERROR_P (result_var, err) \
More information about the uClibc
mailing list