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