[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20241112140454.518823-4-mailhol.vincent@wanadoo.fr>
Date: Tue, 12 Nov 2024 22:59:22 +0900
From: Vincent Mailhol <mailhol.vincent@...adoo.fr>
To: Linus Torvalds <torvalds@...ux-foundation.org>,
Yury Norov <yury.norov@...il.com>,
Rasmus Villemoes <linux@...musvillemoes.dk>,
Luc Van Oostenryck <luc.vanoostenryck@...il.com>
Cc: linux-kernel@...r.kernel.org,
linux-sparse@...r.kernel.org,
Rikard Falkeborn <rikard.falkeborn@...il.com>,
Vincent Mailhol <mailhol.vincent@...adoo.fr>
Subject: [PATCH v3 0/2] add _statically_true() to simplify GENMASK_INPUT_CHECK()
The first patch introduces a new variant of statically_true() named
_statically_true() which rely on __is_constexpr() to produce a
constant expression result which can be used in BUILD_BUG_ON_ZERO()
and other macros which expect a constant expression as input.
The second patch applies this newly created _statically_true() to
GENMASK_INPUT_CHECK().
** Changelog **
v2 -> v3:
- split the single patch into a series of two patches.
- add explanation of why _statically_true() is needed in addition
to the existing statically_true(). Explain the pros and cons of
each.
- use __builtin_choose_expr() in _statically_true(). The
_statically_true() of the v2 works perfectly fine when used in
conjunction with BUILD_BUG_ON_ZERO() but fails if used, for
example, in arrays or in static_assert().
Link: https://lore.kernel.org/all/20241111164743.339117-2-mailhol.vincent@wanadoo.fr/
v1 -> v2:
- introduce _statically_true(), taking inspiration from
statically_true() as introduced in commit 22f546873149 ("minmax:
improve macro expansion and type checking").
Link: https://lore.kernel.org/all/20240609073513.256179-1-mailhol.vincent@wanadoo.fr/
Vincent Mailhol (2):
compiler.h: add _static_assert()
linux/bits.h: simplify GENMASK_INPUT_CHECK()
include/linux/bits.h | 5 ++---
include/linux/compiler.h | 14 ++++++++++++++
2 files changed, 16 insertions(+), 3 deletions(-)
--
2.45.2
Powered by blists - more mailing lists