Replace const to remove warnings
PATCH 1/1 Replace const to remove warnings
Hi.
I'd posted a patch a day or two ago which removed some __const__ declarations that GCC said were not needed. A reply to the posting suggested that using __attribute__((const)) was the correct approach. The attached patch adds the attribute.
Here's the initial mail for reference ...
http://www.ussg.iu.edu/hypermail/linux/kernel/0304.2/1440.html
I've built a kernel with this patch and it's running now - 2.5.68-bk? from April 23
Art Haas
===== include/asm-i386/byteorder.h 1.2 vs edited =====
include/asm-i386/byteorder.h +2 -2
@@ -10,7 +10,7 @@#include <linux/config.h> #endif -static __inline__ __const__ __u32 ___arch__swab32(__u32 x) +static __inline__ __attribute__((const))__u32 ___arch__swab32 (__u32 x) {#ifdef CONFIG_X86_BSWAP __asm__("bswap %0" :"=r" (x) :"0" (x));
@@ -26,7 +26,7 @@/* gcc should generate this for open coded C now too. May be worth switching to it because inline assembly cannot be scheduled. -AK */ -static __inline__ __const__ __u16 ___arch__swab16(__u16 x) +static __inline__ __attribute__((const))__u16 ___arch__swab16 (__u16 x) { __asm__("xchgb %b0,%h0" /* swap bytes */ : "=q" (x)
===== include/linux/byteorder/swab.h 1.2 vs edited =====
include/linux/byteorder/swab.h +3 -3
@@ -128,7 +128,7 @@#endif /* OPTIMIZE */ -static __inline__ __const__ __u16 __fswab16(__u16 x) +static __inline__ __attribute__((const))__u16 __fswab16 (__u16 x) {return __arch__swab16 (x); }
@@ -141,7 +141,7 @@__arch__swab16s (addr); } -static __inline__ __const__ __u32 __fswab32(__u32 x) +static __inline__ __attribute__((const))__u32 __fswab32 (__u32 x) {return __arch__swab32 (x); }
@@ -155,7 +155,7 @@ }#ifdef __BYTEORDER_HAS_U64__ -static __inline__ __const__ __u64 __fswab64(__u64 x) +static __inline__ __attribute__((const))__u64 __fswab64 (__u64 x) {# ifdef __SWAB_64_THRU_32____u32 h = x >>32 ;
Signature · 4 lines
To announce that there must be no criticism of the President, or that we are to stand by the President, right or wrong, is not only unpatriotic and servile, but is morally treasonable to the American public. -- Theodore Roosevelt, Kansas City Star, 1918