[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] obstack: check def before use in macros
From: |
Bruno Haible |
Subject: |
Re: [PATCH 1/2] obstack: check def before use in macros |
Date: |
Wed, 07 May 2025 23:31:07 +0200 |
Paul Eggert wrote:
> Simplify the logic for __extension__.
> ...
> @@ -329,9 +331,9 @@ extern int obstack_exit_failure;
>
> #define obstack_memory_used(h) _obstack_memory_used (h)
>
> -#if defined __GNUC__ || defined __clang__
> -# if ! (2 < __GNUC__ + (8 <= __GNUC_MINOR__) || defined __clang__ \
> - || 0x5150 <= __SUNPRO_C)
> +#if (defined __GNUC__ || defined __clang__ \
> + || (defined __SUNPRO_C && 0x5150 <= __SUNPRO_C))
> +# if defined __GNUC__ && ! (2 < __GNUC__ + (8 <= __GNUC_MINOR__))
> # define __extension__
> # endif
>
That does not look like what the ChangeLog entry says. The patch adds
a __SUNPRO_C clause to the _outer_ #if, and it removes a __SUNPRO_C
clause from the definition of __extension__. Does Solaris cc of
version 0x5150 or newer really support statement-expressions?
I couldn't reproduce an error with the few Solaris cc compilers
that I have access to. But maybe there is still a logic bug here?
Bruno