Messages in this thread | | | From | Linus Torvalds <> | Date | Thu, 22 Mar 2018 10:04:14 -0700 | Subject | Re: [PATCH v5 0/2] Remove false-positive VLAs when using max() |
| |
On Thu, Mar 22, 2018 at 8:01 AM, Kees Cook <keescook@chromium.org> wrote: > > Seems like it doesn't like void * arguments:
Yeah, that was discussed separately, I just didn't realize we had any such users.
As David said, just adding a (long) cast to it should be fine, ie
#define __is_constant(a) \ (sizeof(int) == sizeof(*(1 ? ((void*)((long)(a) * 0l)) : (int*)1)))
and is probably a good idea even outside of pointers (because "long long" constants could cause warnings too due to the cast to (void *)).
Linus
| |