https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78267
--- Comment #23 from Iain Sandoe <iains at gcc dot gnu.org> --- (In reply to Eric Gallager from comment #22) > (In reply to Iain Sandoe from comment #3) > > (In reply to Maxim Ostapenko from comment #1) > > > Eh, mine. > > > > > > typedef void (^os_trace_payload_t)(xpc_object_t xdict) looks very strange, > > > it seems that it's an Objective-C declaration, right? > > > > It's declaring os_trace_payload_t to of type "Apple block" (like a lambda > > that can be used over the whole of c-family); Apple blocks are currently > > not supported by GCC. There is no realistic work-around, any interface > > using blocks will fail, and thus either those interfaces need to be excluded > > from tests, or the tests skipped/xfailed. > > > > To be specific, they're not supported by the FSF release of GCC. Apple's > fork of GCC supported blocks back before they ditched it for clang, so this > isn't just a clang extension. Apple's blocks implementation was never submitted "upstream" is my understanding, it's not present in any branch on an FSF server (and thus we can't use it, even if it were usable 4.2 => 7.0, which it isn't without significant re-work). (Let's not side-track this PR - perhaps we should just file one to cover missing blocks support, 63651 already discusses two different problems).