https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78267
Rainer Orth <ro at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ro at gcc dot gnu.org --- Comment #11 from Rainer Orth <ro at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #5) > extern char **environ; > #endif > > -#if defined(__has_include) && __has_include(<os/trace.h>) > +#if defined(__has_include) && __has_include(<os/trace.h>) && > defined(__clang__) > #define SANITIZER_OS_TRACE 1 > #include <os/trace.h> > #else > > is preapproved if it works. I'd use fixincludes instead to wrap the two offending declarations in <os/trace.h> with #ifdef __BLOCKS__. This is a macOS bug, actually: many other places using the Blocks extension already wrap them correctly. I've filed Bug 29184470 <os/trace.h> uses Blocks extension unconditionally for this. Rainer