Skip to content

tests.py should map /std:c++latest to 'c++2b' #2001

Description

tests.py maps compiler options to "features", used by the libcxx test suite:

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

# 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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixedSomething works now, yay!testRelated to test code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions