-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
Description
tests.py maps compiler options to "features", used by the libcxx test suite:
STL/tests/utils/stl/test/tests.py
Lines 234 to 241 in 4c862ee
| if flag[5:] == 'c++latest': | |
| self._addCustomFeature('c++2a') | |
| elif flag[5:] == 'c++20': | |
| self.requires.append('unsupported_potato') # TRANSITION, VS2019 Preview 16.11 | |
| elif flag[5:] == 'c++17': | |
| self._addCustomFeature('c++17') | |
| elif flag[5:] == 'c++14': | |
| self._addCustomFeature('c++14') |
The toolset update #1953 is mapping /std:c++20 to 'c++2a'. However, it's still mapping /std:c++latest to 'c++2a'. This prevents libcxx's C++23 tests from running.
For example, #1950 is implementing is_scoped_enum, but attempting to unskip its test
STL/tests/libcxx/skipped_tests.txt
Lines 278 to 279 in 4c862ee
| # C++23 P1048R1 "is_scoped_enum" | |
| utilities\meta\meta.unary\meta.unary.prop\is_scoped_enum.pass.cpp |
leads to it being detected as unsupported. (The test marks itself as unsupported in C++03 through C++2a inclusive, meaning it expects C++2b.)
As I recall, I initially attempted to map /std:c++latest to 'c++2b' in toolset update #1953, but encountered a couple of libcxx tests that weren't expecting this. This might be resolved if we update to libcxx's latest commit.