Re: [PATCH v4 1/2] kernel.h: Introduce const_max() for VLA removal
From: Kees Cook <hidden>
Date: 2018-03-15 23:31:59
Also in:
lkml, netdev
From: Kees Cook <hidden>
Date: 2018-03-15 23:31:59
Also in:
lkml, netdev
On Thu, Mar 15, 2018 at 4:17 PM, Miguel Ojeda [off-list ref] wrote:
quoted
The full one, using your naming convention: #define const_max(x, y) \ ({ \ if (!__builtin_constant_p(x)) \ __error_not_const_arg(); \ if (!__builtin_constant_p(y)) \ __error_not_const_arg(); \ if (!__builtin_types_compatible_p(typeof(x), typeof(y))) \ __error_incompatible_types(); \ if ((x) < 0) \ __error_not_positive_arg(); \ if ((y) < 0) \ __error_not_positive_arg(); \ __builtin_choose_expr((x) > (y), (x), (y)); \ })Nevermind... gcc doesn't take that as a constant expr, even if it compiles as one at -O0.
Yeah, unfortunately. :( -Kees -- Kees Cook Pixel Security