Re: [PATCH 1/2] Add C99-style constructor macros for specific-sized integers

H. Peter Anvin
2008-03-03T17:05:17Z

Sam Ravnborg wrote:
>
> And in linux/const.h we have yet another variant:
> /* Some constant macros are used in both assembler and
> * C code. Therefore we cannot annotate them always with
> * 'UL' and other type specifiers unilaterally. We
> * use the following macros to deal with this.
> *
> * Similarly, _AT() will cast an expression with a type in C, but
> * leave it unchanged in asm.
> */
>
> #ifdef __ASSEMBLY__
> #define _AC(X,Y) X
> #define _AT(T,X) X
> #else
> #define __AC(X,Y) (X##Y)
> #define _AC(X,Y) __AC(X,Y)
> #define _AT(T,X) ((T)(X))
> #endif
>
> Not as typestrict as hpa's and arm's version but
> used in a few placed already.
>

These, unfortunately, don't solve the issue of gcc warnings, and you
don't want to make them paste ULL on before the cast, since I think
they're used with non-simple constants.

-hpa