Re: detecting integer constant expressions in macros

From: Linus Torvalds
Date: Tue Mar 20 2018 - 19:09:59 EST


On Tue, Mar 20, 2018 at 4:07 PM, Uecker, Martin
<Martin.Uecker@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> talking of crazy ideas, here is another way to preserve
> integer const expressions in macros by storing it a
> VLA type (only for positive integers I guess):
>
>
> #define MAX(a, b) sizeof(*({ \
> typedef char _Ta[a]; \
> typedef char _Tb[b]; \
> (char(*)[sizeof(_Ta) > sizeof(_Tb) ? sizeof(_Ta) :
> sizeof(_Tb)])0; }))

I liked your previous hack more. This is much more limited and not
nearly as disgustingly subtle.

Linus