Re: [patch 1/6] x86: apicdef unification: some constants made unsigned

From: H. Peter Anvin
Date: Mon Nov 12 2007 - 13:05:28 EST


Maciej W. Rozycki wrote:
On Tue, 6 Nov 2007, Robert Richter wrote:

-#define GET_APIC_VERSION(x) ((x)&0xFF)
-#define GET_APIC_MAXLVT(x) (((x)>>16)&0xFF)
-#define APIC_INTEGRATED(x) ((x)&0xF0)
+#define GET_APIC_VERSION(x) ((x)&0xFFu)
+#define GET_APIC_MAXLVT(x) (((x)>>16)&0xFFu)
+#define APIC_INTEGRATED(x) ((x)&0xF0u)

No point in doing this -- hexadecimal literals are unsigned by definition. File a compiler bug if you see them interpreted otherwise.


Not unless they have to be (see C99 if you don't believe me... on a I32LP64 system for example, 0x7fffffff is signed int, 0x80000000 is unsigned int, 0x100000000 is signed long).

What is this supposed to solve in the first place?

-hpa

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/