Re: [PATCH 00/10] compiler.h: refactor __is_constexpr() into is_const{,_true,_false}()

From: Kees Cook
Date: Wed Dec 04 2024 - 18:58:54 EST




On December 3, 2024 3:33:22 AM GMT+10:00, Vincent Mailhol via B4 Relay <devnull+mailhol.vincent.wanadoo.fr@xxxxxxxxxx> wrote:
>This series is the spiritual successor of [1] which introduced
>const_true(). In [1], following a comment from David Laight, Linus
>came with a suggestion to simplify __is_constexpr() and its derived
>macros using a _Generic() selection. Because of the total change of
>scope, I am starting a new series.
>
>The goal is to introduce a set of three macros:
>
> - is_const(): a one to one replacement of __is_constexpr() in term
> of features but written in a less hacky way thanks to _Generic().
>
> - is_const_true(): tells whether or not the argument is a true
> integer constant expression.
>
> - is_const_false(): tells whether or not the argument is a false
> integer constant expression.

But why make this change? Is something broken? Does it make builds faster?

> 7 files changed, 97 insertions(+), 84 deletions(-)

It makes the code larger too. I don't see what the benefit is, and given how much time has been spent making sure the existing stuff works correctly, I feel like we should have a clear benefit to replacing it all.

-Kees

--
Kees Cook