diff --git a/libstdc++-v3/testsuite/26_numerics/complex/proj.cc b/libstdc++-v3/testsuite/26_numerics/complex/proj.cc index a053119197c..69f8153c06f 100644 --- a/libstdc++-v3/testsuite/26_numerics/complex/proj.cc +++ b/libstdc++-v3/testsuite/26_numerics/complex/proj.cc @@ -397,6 +397,19 @@ test03() int main() { + /* If neither of these macros is nonzero, proj calls a + specialization of the __complex_proj template, that just returns + its argument, without testing for infinities, rendering the whole + test pointless, and failing (as intended/noted in the + implementation) the cases that involve infinities. Alas, the + normal ways to skip tests may not work: we don't have a test for + C99_COMPLEX, and these macros may vary depending on -std=*, but + macro tests wouldn't take them into account. */ +#if ! (_GLIBCXX_USE_C99_COMPLEX || _GLIBCXX_USE_C99_MATH_TR1) + if (true) + return 0; +#endif + test01(); test02(); test03();