Rich, on Wed, 24 May 2023 09:58:37 -0400 you (Rich Felker ) wrote: > On Wed, May 24, 2023 at 12:04:34PM +0200, Jens Gustedt wrote: > > C23 has some new features, in particular attributes, that are > > prescribed for certain headers. > > > > Jens Gustedt (6): > > C23: provide fallbacks for the use of C attributes > > C23: add a feature test for the __VA_OPT__ feature > > C23: add a feature test for the [u]int128_t > > Add a feature test for the _BitInt types. > > add a `__inline_or_static` macro for pre-C99 compilers > > C23: add an internal interface for the new unsequenced attribute > > > > include/features.h | 51 > > +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 > > insertions(+), 1 deletion(-) > > > > -- > > 2.34.1 > > I don't see a motivation for any of the patches in this series. sure, you don't have the usage side yet, please be patient I decided to group them together, because they are the easiest applied at the beginning. > For the ones which test for compiler features, musl does not use any > of these features internally, so it does not have any use for > testing for their support. > At the public header level, they're only to be used in > things which are C23-only, and can just be used unconditionally in the > C23-only macros that need them. These are not macros that need them, but functions. C23 requires changes from `_Noreturn` to `[[noreturn]]` for example, deprecates functions and stuff like that. > For __noreturn, we already have _Noreturn (just above your new > definition in the patch). I'm not clear on what the motivation for > having a new alternative to this is. `_Noreturn` remains a keyword for C23, but the headers are required to use the new attribute. So we have to use a new name for the interfaces that can be mapped to the old or new feature according to the needs. > I don't see how __inline_or_static makes sense at all. (Non-static) > inline has very different semantics from static sure > and they cannot be used interchangibly as a "use whichever the > compiler supports". This macro is only meant to make a difference for pre-C99 compilers, which we still seem to support. > We do not use non-static inline at all in musl, > and I'm not aware of any place it would be useful in the public > headers. This comes in later, obvious. Thanks Jₑₙₛ -- :: ICube :::::::::::::::::::::::::::::: deputy director :: :: Université de Strasbourg :::::::::::::::::::::: ICPS :: :: INRIA Nancy Grand Est :::::::::::::::::::::::: Camus :: :: :::::::::::::::::::::::::::::::::::: ☎ +33 368854536 :: :: https://icube-icps.unistra.fr/index.php/Jens_Gustedt ::