https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82417
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Tue Oct 10 11:25:45 2017 New Revision: 253581 URL: https://gcc.gnu.org/viewcvs?rev=253581&root=gcc&view=rev Log: PR libstdc++/82417 do not include C99 <complex.h> in strict modes As an extension the C++ version of <complex.h> includes the C version, but that defines macros with non-reserved names that should not be defined in ISO C++. Only include the C header for non-strict modes, or for pre-C++11 (because C++98 doesn't mention <complex.h> at all). PR libstdc++/59087 PR libstdc++/82417 * include/c_compatibility/complex.h [!C++98 && __STRICT_ANSI__]: Do not include C library's <complex.h>. * testsuite/26_numerics/complex/c99.cc: Depend on __STRICT_ANSI__. * testsuite/26_numerics/headers/complex.h/std_c++11.h: New test. * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: New test. * testsuite/26_numerics/headers/complex.h/std_c++98.h: New test. Added: trunk/libstdc++-v3/testsuite/26_numerics/headers/complex.h/ trunk/libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++11.h - copied, changed from r253550, trunk/libstdc++-v3/testsuite/26_numerics/complex/c99.cc trunk/libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_c++98.h - copied, changed from r253550, trunk/libstdc++-v3/testsuite/26_numerics/complex/c99.cc trunk/libstdc++-v3/testsuite/26_numerics/headers/complex.h/std_gnu++11.h - copied, changed from r253550, trunk/libstdc++-v3/testsuite/26_numerics/complex/c99.cc Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/c_compatibility/complex.h trunk/libstdc++-v3/testsuite/26_numerics/complex/c99.cc