https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93469
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |UNCONFIRMED Ever confirmed|1 |0 --- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Thanks. This seems to be an Mac OS X feature, not a bug. Selecting a specific POSIX version overrides the __STDC_VERSION and __cplusplus values, and so names from newer POSIX standards (like aligned_alloc) are not available. IMO that is wrong, but it seems to be an intentional property of the OS X system headers. Which means that you can't combine -std=c++2a with -D_XOPEN_SOURCE=500. It produces an impossible combination where names required to exist by one standard are required to _not_ exist by the other standard. You could try reporting a radar bug and see if Apple really do consider this correct behaviour.