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

H. Peter Anvin
2007-11-12T18:05:27Z

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