libstdc++: Re-enable some pb_ds tests for C++17 and later
Previously disabled __gnu_pbds tests for C++17 and later are now re-enabled.
GCC re-enables several tests for the __gnu_pbds (Policy-Based Data Structures) library that were previously disabled for C++17 and later standards. These tests were disabled due to issues with ambiguous string conversions, believed to be related to LWG 2946 and fixed in subsequent compiler revisions. The tests now compile successfully with C++17, allowing for their regression testing.
In Details
Tests within libstdc++-v3/testsuite/ext/pb_ds/regression/ were previously gated by a C++17 selector due to ambiguous string conversions in __gnu_pbds::test::basic_type. These issues are now resolved, likely by the fix for LWG 2946 (PR libstdc++/79162), allowing these tests to be re-enabled for C++17 and later standards without compilation failures.
- libstdc++
- The standard C++ library implementation for GCC. It provides the C++ standard library components, including containers, algorithms, and I/O streams.
- __gnu_pbds
- A namespace within libstdc++ that provides GNU's implementation of Policy-Based Data Structures (PBDS). These are highly customizable associative containers.
- C++17
- A major revision of the C++ programming language standard, officially published in 2017. It introduced new features and improvements over C++11 and C++14.
- LWG 2946
- A specific issue or defect report (number 2946) from the C++ Library Working Group, concerning a problem in the C++ standard library. The fix for this issue in GCC resolved compiler-related problems.
- regression test
- A test designed to ensure that previously fixed bugs do not reappear and that new changes do not negatively impact existing functionality.