https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70358
Bug ID: 70358 Summary: Several 26_numerics/random/binomial_distribution/operators etc. tests FAIL Product: gcc Version: 5.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: redi at gcc dot gnu.org Target Milestone: --- Host: *-*-solaris2.1[12] Target: *-*-solaris2.1[12] Build: *-*-solaris2.1[12] Several libstdc++-v3 tests currently FAIL on Solaris 11 and 12, both sparc and x86, both 32 and 64-bit, but on the gcc-4.9 and gcc-5 branches only: FAIL: 26_numerics/random/binomial_distribution/operators/values.cc (test for excess errors) WARNING: 26_numerics/random/binomial_distribution/operators/values.cc compilation failed to produce executable FAIL: 26_numerics/random/binomial_distribution/operators/values2.cc (test for excess errors) WARNING: 26_numerics/random/binomial_distribution/operators/values2.cc compilation failed to produce executable FAIL: 26_numerics/random/binomial_distribution/operators/values3.cc (test for excess errors) WARNING: 26_numerics/random/binomial_distribution/operators/values3.cc compilation failed to produce executable FAIL: 26_numerics/random/binomial_distribution/operators/values4.cc (test for excess errors) WARNING: 26_numerics/random/binomial_distribution/operators/values4.cc compilation failed to produce executable FAIL: 26_numerics/random/binomial_distribution/operators/values5.cc (test for excess errors) WARNING: 26_numerics/random/binomial_distribution/operators/values5.cc compilation failed to produce executable FAIL: 26_numerics/random/negative_binomial_distribution/operators/values.cc (test for excess errors) WARNING: 26_numerics/random/negative_binomial_distribution/operators/values.cc compilation failed to produce executable FAIL: 26_numerics/random/poisson_distribution/operators/values.cc (test for excess errors) WARNING: 26_numerics/random/poisson_distribution/operators/values.cc compilation failed to produce executable FAIL: ext/random/hypergeometric_distribution/operators/values.cc (test for excess errors) WARNING: ext/random/hypergeometric_distribution/operators/values.cc compilation failed to produce executable For example, Excess errors: /vol/gcc/src/hg/gcc-5-branch/local/libstdc++-v3/testsuite/26_numerics/random/binomial_distribution/operators/values.cc:36:67: error: 'binomial_pdf' was not declared in this scope /vol/gcc/src/hg/gcc-5-branch/local/libstdc++-v3/testsuite/util/testsuite_random.h:56:7: error: void value not ignored as it ought to be It turns out, the same tests are UNSUPPORTED on mainline. When I check libstdc++.log, I find output is: c99_math20881.cc:3:4: error: #error No C99 math on mainline while the test passes on e.g. gcc-5 branch. The test is #include <tr1/cmath> #ifndef _GLIBCXX_USE_C99_MATH_TR1 # error No C99 math #endif Strangely, _GLIBCXX_USE_C99_MATH_TR1 is defined in both gcc-5 and trunk config.h. Looking at c99_math.ii, I find #define _GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH #define _GLIBCXX11_USE_C99_MATH 1 #define _GLIBCXX98_USE_C99_MATH 1 #define _GLIBCXX_USE_C99_MATH_TR1 1 #undef _GLIBCXX_USE_C99_MATH #undef _GLIBCXX_USE_C99_MATH_TR1 on mainline, but #define _GLIBCXX_USE_C99_MATH 1 #define _GLIBCXX_USE_C99_MATH_TR1 1 on the gcc-5 branch. Rainer