[PATCH 02/10] regex.h: Avoid #elif __STDC_VERSION__
Sam James
sam@gentoo.org
Sat Dec 14 09:40:18 GMT 2024
"H.J. Lu" <hjl.tools@gmail.com> writes:
> GCC 4.9 doesn't define __STDC_VERSION__ and issues an error:
>
> In file included from ../include/regex.h:2:0,
> from ../posix/re_comp.h:23,
> from ../include/re_comp.h:1,
> from /tmp/cih_test_7IKTRI.c:10:
> ../posix/regex.h:650:19: error: "__STDC_VERSION__" is not defined [-Werror=undef]
> # elif 199901L <= __STDC_VERSION__ || defined restrict
> ^
>
> Use "#else" instead.
>
> Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
> ---
> posix/regex.h | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/posix/regex.h b/posix/regex.h
> index ccf40cebc0..004dc62405 100644
> --- a/posix/regex.h
> +++ b/posix/regex.h
> @@ -647,10 +647,12 @@ extern int re_exec (const char *);
> || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) \
> || __clang_major__ >= 3
> # define _Restrict_ __restrict
> -# elif 199901L <= __STDC_VERSION__ || defined restrict
> -# define _Restrict_ restrict
> # else
> -# define _Restrict_
> +# if 199901L <= __STDC_VERSION__ || defined restrict
> +# define _Restrict_ restrict
> +# else
> +# define _Restrict_
> +# endif
> # endif
> #endif
> /* For the ISO C99 syntax
> @@ -661,13 +663,15 @@ extern int re_exec (const char *);
> #ifndef _Restrict_arr_
> # ifdef __restrict_arr
> # define _Restrict_arr_ __restrict_arr
> -# elif ((199901L <= __STDC_VERSION__ \
> +# else
> +# if ((199901L <= __STDC_VERSION__ \
> || 3 < __GNUC__ + (1 <= __GNUC_MINOR__) \
> || __clang_major__ >= 3) \
> && !defined __cplusplus)
> -# define _Restrict_arr_ _Restrict_
> -# else
> -# define _Restrict_arr_
> +# define _Restrict_arr_ _Restrict_
> +# else
> +# define _Restrict_arr_
> +# endif
> # endif
> #endif
I would mildly prefer 'if !defined ( ... )' but it would make the line
too long, so OK.
Reviewed-by: Sam James <sam@gentoo.org>
More information about the Libc-alpha
mailing list