https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93151

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=93469

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This is related to PR 93469: darwin headers ignore the value of __STDC_VERSION
or __cplusplus if _XOPEN_VERSION is used to select an old POSIX standard. But
in this case the problem appears to be in the C++ standard.

These error numbers are required by C++11, which refers to ISO/IEC 9945:2003,
which (I believe) is aligned with POSIX:2001 aka SUSv3. But POSIX:2001 doesn't
define all the error numbers required by C++11.

So if you ask the system to conform to SUSv3 (by defining _XOPEN_VERSION=600)
some error numbers that C++11 requires are absent.

I think we need to fix the C++ standard, but also change libstdc++ to use
#ifdef for the error numbers that aren't required by SUSv3.

Reply via email to