From 2b4fb315518cc62cc096ac06369146e0f5757a76 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Tue, 28 Oct 2025 18:07:29 +0200 Subject: [PATCH 01/29] Integer coverage --- tests/std/test.lst | 1 + .../GH_005816_numeric_limits_traps/env.lst | 4 +++ .../GH_005816_numeric_limits_traps/test.cpp | 30 +++++++++++++++++++ 3 files changed, 35 insertions(+) create mode 100644 tests/std/tests/GH_005816_numeric_limits_traps/env.lst create mode 100644 tests/std/tests/GH_005816_numeric_limits_traps/test.cpp diff --git a/tests/std/test.lst b/tests/std/test.lst index 9dabf29d512..f80cae63fd0 100644 --- a/tests/std/test.lst +++ b/tests/std/test.lst @@ -272,6 +272,7 @@ tests\GH_005472_do_not_overlap tests\GH_005546_containers_size_type_cast tests\GH_005553_regex_character_translation tests\GH_005768_pow_accuracy +tests\GH_005816_numeric_limits_traps tests\LWG2381_num_get_floating_point tests\LWG2510_tag_classes tests\LWG2597_complex_branch_cut diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/env.lst b/tests/std/tests/GH_005816_numeric_limits_traps/env.lst new file mode 100644 index 00000000000..19f025bd0e6 --- /dev/null +++ b/tests/std/tests/GH_005816_numeric_limits_traps/env.lst @@ -0,0 +1,4 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +RUNALL_INCLUDE ..\usual_matrix.lst diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp new file mode 100644 index 00000000000..dc8a8140a79 --- /dev/null +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +#include + +#include + +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wc++17-extensions" // constexpr if is a C++17 extension +#else +#pragma warning(disable : 4984) // warning C4984: 'if constexpr' is a C++17 language extension +#endif // __clang__ + +void trap_operation() { + volatile int op1{1}; + volatile int op2{0}; + volatile int res = op1 / op2; + (void) res; +} + +int main(int argc, char* argv[]) { + if constexpr (std::numeric_limits::traps) { + std_testing::death_test_executive exec; + const std_testing::death_function_t one_trap[] = {trap_operation}; + exec.add_death_tests(one_trap); + return exec.run(argc, argv); + } else { + trap_operation(); + } +} From 9833a4ac8a6b6d6e69085de132da170cd8ca411d Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Tue, 28 Oct 2025 18:07:40 +0200 Subject: [PATCH 02/29] Product code fix --- stl/inc/limits | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/stl/inc/limits b/stl/inc/limits index ad6f5f1a013..ae4d9050a8f 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -120,7 +120,10 @@ struct _Num_int_base : _Num_base { // base for integer types static constexpr bool is_exact = true; static constexpr bool is_integer = true; static constexpr bool is_specialized = true; - static constexpr int radix = 2; +#if defined(_M_IX86) || defined(_M_X64) + static constexpr bool traps = true; +#endif + static constexpr int radix = 2; }; struct _Num_float_base : _Num_base { // base for floating-point types @@ -178,6 +181,7 @@ public: return 0; } + static constexpr bool traps = false; static constexpr int digits = 1; }; From b17606a28ecc69db8e9487c7cbb7352402ed8a0d Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Tue, 28 Oct 2025 19:07:06 +0200 Subject: [PATCH 03/29] Skip numeric.limits.members/traps.pass.cpp for Clang. (cherry picked from commit c31c5e2a611ac13f256f3e39848fa9f9d6e24d51) --- tests/libcxx/expected_results.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 0253413ab1d..343abccc27a 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -734,7 +734,9 @@ std/depr/depr.c.headers/tgmath_h.pass.cpp:2 FAIL # *** CLANG ISSUES, NOT YET ANALYZED *** # Not analyzed. Clang apparently defines platform macros differently from C1XX. -std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 FAIL +# The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. +# SKIPPED because this fails for x64/x86 and passes for ARM64. +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 SKIPPED # Not analyzed. Possibly C++20 equality operator rewrite issues. std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp:2 FAIL From 97e6faa637f2e1b4ac236ce60733e9881021735f Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Tue, 28 Oct 2025 19:31:01 +0200 Subject: [PATCH 04/29] Skippy skip --- tests/libcxx/expected_results.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 343abccc27a..7888e8e5612 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -736,7 +736,7 @@ std/depr/depr.c.headers/tgmath_h.pass.cpp:2 FAIL # Not analyzed. Clang apparently defines platform macros differently from C1XX. # The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. # SKIPPED because this fails for x64/x86 and passes for ARM64. -std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 SKIPPED +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp SKIPPED # Not analyzed. Possibly C++20 equality operator rewrite issues. std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp:2 FAIL From e627022e93ab6119c7235c618e9a512b05b234b5 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 18:34:52 +0200 Subject: [PATCH 05/29] it is always the trap --- stl/inc/limits | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index ae4d9050a8f..2d1bbc0a8b7 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -120,10 +120,8 @@ struct _Num_int_base : _Num_base { // base for integer types static constexpr bool is_exact = true; static constexpr bool is_integer = true; static constexpr bool is_specialized = true; -#if defined(_M_IX86) || defined(_M_X64) - static constexpr bool traps = true; -#endif - static constexpr int radix = 2; + static constexpr bool traps = true; + static constexpr int radix = 2; }; struct _Num_float_base : _Num_base { // base for floating-point types From ad6a32fa55da91d75da3a230424e1e155df7e294 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 19:24:07 +0200 Subject: [PATCH 06/29] but Clang --- stl/inc/limits | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index 2d1bbc0a8b7..12b6e72d769 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -120,8 +120,12 @@ struct _Num_int_base : _Num_base { // base for integer types static constexpr bool is_exact = true; static constexpr bool is_integer = true; static constexpr bool is_specialized = true; - static constexpr bool traps = true; - static constexpr int radix = 2; +#if !defined(__clang__) || defined(__x86_64__) || defined(__i386__) + static constexpr bool traps = true; +#else // ^^^ not Clang or x64 or x86 / Clang and not x64 and not x86 vvv + static constexpr bool traps = false; +#endif // ^^^ Clang and not x64 and not x86 ^^^ + static constexpr int radix = 2; }; struct _Num_float_base : _Num_base { // base for floating-point types From 816d158c601339a1276cad84f5f3c72cd00fca86 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 19:46:47 +0200 Subject: [PATCH 07/29] concise override --- stl/inc/limits | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index 12b6e72d769..fbb9b824818 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -122,9 +122,7 @@ struct _Num_int_base : _Num_base { // base for integer types static constexpr bool is_specialized = true; #if !defined(__clang__) || defined(__x86_64__) || defined(__i386__) static constexpr bool traps = true; -#else // ^^^ not Clang or x64 or x86 / Clang and not x64 and not x86 vvv - static constexpr bool traps = false; -#endif // ^^^ Clang and not x64 and not x86 ^^^ +#endif // ^^^ not Clang or x64 or x86 ^^^ static constexpr int radix = 2; }; From 6996605ebcead4cf8caef355027100a59faea430 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 19:49:11 +0200 Subject: [PATCH 08/29] Spell that more naturally --- tests/std/tests/GH_005816_numeric_limits_traps/test.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp index dc8a8140a79..8917ed349c4 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp @@ -12,9 +12,9 @@ #endif // __clang__ void trap_operation() { - volatile int op1{1}; - volatile int op2{0}; - volatile int res = op1 / op2; + const volatile int op1 = 1; + const volatile int op2 = 0; + const volatile int res = op1 / op2; (void) res; } From 3347a99a6e9625f4cf06f0a0e89b121bdb312de7 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 19:59:28 +0200 Subject: [PATCH 09/29] Now we know --- tests/libcxx/expected_results.txt | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 7888e8e5612..2672d3c5c1a 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -733,11 +733,6 @@ std/depr/depr.c.headers/tgmath_h.pass.cpp:2 FAIL # *** CLANG ISSUES, NOT YET ANALYZED *** -# Not analyzed. Clang apparently defines platform macros differently from C1XX. -# The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. -# SKIPPED because this fails for x64/x86 and passes for ARM64. -std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp SKIPPED - # Not analyzed. Possibly C++20 equality operator rewrite issues. std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp:2 FAIL std/utilities/expected/expected.void/equality/equality.other_expected.pass.cpp:2 FAIL @@ -996,6 +991,14 @@ std/containers/sequences/vector/trivial_relocation.pass.cpp:1 FAIL # Not analyzed, likely bogus test. constexpr fails with "vector iterators incompatible". std/ranges/range.adaptors/range.join.with/range.join.with.iterator/ctor.default.pass.cpp FAIL +# Two problems in this test: +# - Clang does not trap on Arm64, but MSVC does. +# - The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. +# :2 SKIPPED because this fails for x64/x86 and passes for ARM64. +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:0 FAIL +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:1 FAIL +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 SKIPPED + # *** LIKELY STL BUGS *** # Not analyzed, likely STL bugs. Various assertions. From a49bce3e303e127a66f57d42c80c2e7be357fe5c Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 20:45:13 +0200 Subject: [PATCH 10/29] comprehensive compile-time coverage --- .../GH_005816_numeric_limits_traps/test.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp index 8917ed349c4..1597d0732ce 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp @@ -11,6 +11,21 @@ #pragma warning(disable : 4984) // warning C4984: 'if constexpr' is a C++17 language extension #endif // __clang__ +template +constexpr bool traps_ = std::numeric_limits::traps; + +static_assert(!traps_, "bool does not trap for a moot reason"); + +static_assert(!traps_ && !traps_ && !traps_, + "floats don't trap because even if '/fp:except' is passed, it should be enabled at runtime"); + +static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ + && traps_ == traps_ && traps_ == traps_ + && traps_ == traps_ && traps_ == traps_ + && traps_ == traps_ && traps_ == traps_ + && traps_ == traps_, + "all integers should trap or not trap equally"); + void trap_operation() { const volatile int op1 = 1; const volatile int op2 = 0; @@ -19,7 +34,7 @@ void trap_operation() { } int main(int argc, char* argv[]) { - if constexpr (std::numeric_limits::traps) { + if constexpr (traps_) { std_testing::death_test_executive exec; const std_testing::death_function_t one_trap[] = {trap_operation}; exec.add_death_tests(one_trap); From e1a996e541cb652d942c188ae4fecf3cd46b34f1 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 20:54:27 +0200 Subject: [PATCH 11/29] nicer test format --- .../std/tests/GH_005816_numeric_limits_traps/test.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp index 1597d0732ce..4c7224dfa2b 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp @@ -7,9 +7,9 @@ #ifdef __clang__ #pragma clang diagnostic ignored "-Wc++17-extensions" // constexpr if is a C++17 extension -#else +#else // ^^^ defined(__clang__) / !defined(__clang__) vvv #pragma warning(disable : 4984) // warning C4984: 'if constexpr' is a C++17 language extension -#endif // __clang__ +#endif // ^^^ !defined(__clang__) ^^^ template constexpr bool traps_ = std::numeric_limits::traps; @@ -21,9 +21,9 @@ static_assert(!traps_ && !traps_ && !traps_, static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_, + && traps_ == traps_ // + && traps_ == traps_ && traps_ == traps_ + && traps_ == traps_ && traps_ == traps_, "all integers should trap or not trap equally"); void trap_operation() { From 257f831bb27577b34b17ad04f07d7d84e3ae0779 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 30 Oct 2025 21:34:13 +0200 Subject: [PATCH 12/29] No longer SKIPPED actually --- tests/libcxx/expected_results.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 2672d3c5c1a..021b35a0a81 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -994,10 +994,8 @@ std/ranges/range.adaptors/range.join.with/range.join.with.iterator/ctor.default. # Two problems in this test: # - Clang does not trap on Arm64, but MSVC does. # - The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. -# :2 SKIPPED because this fails for x64/x86 and passes for ARM64. std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:0 FAIL std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:1 FAIL -std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 SKIPPED # *** LIKELY STL BUGS *** From 4ede9b1b7fdbcd1c82e37c53c015b4476db38d4b Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 2 Nov 2025 13:09:33 +0200 Subject: [PATCH 13/29] No more death, no more execution! --- .../{test.cpp => test.compile.pass.cpp} | 43 ++++++++----------- 1 file changed, 19 insertions(+), 24 deletions(-) rename tests/std/tests/GH_005816_numeric_limits_traps/{test.cpp => test.compile.pass.cpp} (52%) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp similarity index 52% rename from tests/std/tests/GH_005816_numeric_limits_traps/test.cpp rename to tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 4c7224dfa2b..d7f37ffcc97 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -3,21 +3,29 @@ #include -#include - +#if defined(_M_IX86) || defined(_M_X64) && !defined(_M_ARM64EC) +// The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1 +// It is translated to the corresponding SEH exxcptions +constexpr bool _Integer_zero_division_traps = true; +#elif defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) +// The hardware does not trap. #ifdef __clang__ -#pragma clang diagnostic ignored "-Wc++17-extensions" // constexpr if is a C++17 extension +// Clang compiles code as is, so there's no trap +constexpr bool _Integer_zero_division_traps = false; #else // ^^^ defined(__clang__) / !defined(__clang__) vvv -#pragma warning(disable : 4984) // warning C4984: 'if constexpr' is a C++17 language extension +// MSVC inserts check for zero to trap zero division. +// It does not insert thecks for INT_MIN/-1 division overflow though. +constexpr bool _Integer_zero_division_traps = true; #endif // ^^^ !defined(__clang__) ^^^ +#else // ^^^ defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) ^^^ +#error Unsupported hardware +#endif template constexpr bool traps_ = std::numeric_limits::traps; -static_assert(!traps_, "bool does not trap for a moot reason"); - -static_assert(!traps_ && !traps_ && !traps_, - "floats don't trap because even if '/fp:except' is passed, it should be enabled at runtime"); +static_assert(traps_ == _Integer_zero_division_traps, + "integer trap behavior should match the expectation from the current platform and complier"); static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ @@ -26,20 +34,7 @@ static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_, "all integers should trap or not trap equally"); -void trap_operation() { - const volatile int op1 = 1; - const volatile int op2 = 0; - const volatile int res = op1 / op2; - (void) res; -} +static_assert(!traps_, "bool does not trap for a moot reason"); -int main(int argc, char* argv[]) { - if constexpr (traps_) { - std_testing::death_test_executive exec; - const std_testing::death_function_t one_trap[] = {trap_operation}; - exec.add_death_tests(one_trap); - return exec.run(argc, argv); - } else { - trap_operation(); - } -} +static_assert(!traps_ && !traps_ && !traps_, + "floats don't trap because even if '/fp:except' is passed, it should be enabled at runtime"); From 72bd6f4d3dd332a5f467f29a7cce1477ba513d43 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 2 Nov 2025 13:18:10 +0200 Subject: [PATCH 14/29] spelling --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index d7f37ffcc97..04f2ac71c59 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -5,7 +5,7 @@ #if defined(_M_IX86) || defined(_M_X64) && !defined(_M_ARM64EC) // The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1 -// It is translated to the corresponding SEH exxcptions +// It is translated to the corresponding SEH exceptions constexpr bool _Integer_zero_division_traps = true; #elif defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) // The hardware does not trap. From 614a323c2abb78dbf4ce4896b815ed4f64e8e843 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 2 Nov 2025 13:34:53 +0200 Subject: [PATCH 15/29] spelling --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 04f2ac71c59..8486e3f1a51 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -14,7 +14,7 @@ constexpr bool _Integer_zero_division_traps = true; constexpr bool _Integer_zero_division_traps = false; #else // ^^^ defined(__clang__) / !defined(__clang__) vvv // MSVC inserts check for zero to trap zero division. -// It does not insert thecks for INT_MIN/-1 division overflow though. +// It does not insert checks for INT_MIN/-1 division overflow though. constexpr bool _Integer_zero_division_traps = true; #endif // ^^^ !defined(__clang__) ^^^ #else // ^^^ defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) ^^^ From c9c5ab7944fffba2d97b9b22b0b4ccb918991993 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 2 Nov 2025 14:47:34 +0200 Subject: [PATCH 16/29] ARM64EC fix --- stl/inc/limits | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index fbb9b824818..0baa86fcdfb 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -120,9 +120,9 @@ struct _Num_int_base : _Num_base { // base for integer types static constexpr bool is_exact = true; static constexpr bool is_integer = true; static constexpr bool is_specialized = true; -#if !defined(__clang__) || defined(__x86_64__) || defined(__i386__) +#if !defined(__clang__) || defined(_M_X64) && !defined(_M_ARM64EC) || defined(_M_IX86) static constexpr bool traps = true; -#endif // ^^^ not Clang or x64 or x86 ^^^ +#endif static constexpr int radix = 2; }; From 1c3179e0cbd205f6200a35b049262243df037daa Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 2 Nov 2025 15:32:28 +0200 Subject: [PATCH 17/29] back 2 skipped --- tests/libcxx/expected_results.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 021b35a0a81..191c6e6bdf3 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -991,11 +991,14 @@ std/containers/sequences/vector/trivial_relocation.pass.cpp:1 FAIL # Not analyzed, likely bogus test. constexpr fails with "vector iterators incompatible". std/ranges/range.adaptors/range.join.with/range.join.with.iterator/ctor.default.pass.cpp FAIL -# Two problems in this test: +# Problems in this test: # - Clang does not trap on Arm64, but MSVC does. # - The test inspects `__x86_64__` and `__i386__`, which MSVC doesn't define. +# - The __x86_64__ is defined on ARM64EC, but it is expected to behave like ARM64 +# :2 SKIPPED because this passes for x64/x86/ARM64 and fails for ARM64EC. std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:0 FAIL std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:1 FAIL +std/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp:2 SKIPPED # *** LIKELY STL BUGS *** From b0fa9a649f0cffc99bd6abe5dbcb8cf8661ccbe9 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Thu, 6 Nov 2025 09:00:41 +0200 Subject: [PATCH 18/29] mention LWG-554 --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 8486e3f1a51..2b1ea6a7187 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -34,7 +34,7 @@ static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_, "all integers should trap or not trap equally"); -static_assert(!traps_, "bool does not trap for a moot reason"); +static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); static_assert(!traps_ && !traps_ && !traps_, "floats don't trap because even if '/fp:except' is passed, it should be enabled at runtime"); From db1c4c7c9d78e6a05557edb4df4d7bec65ac1107 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 12:55:35 +0200 Subject: [PATCH 19/29] promoted integers don't trap --- stl/inc/limits | 8 ++++++++ .../test.compile.pass.cpp | 14 ++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index 0baa86fcdfb..c39893639b8 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -226,6 +226,7 @@ public: static constexpr bool is_signed = CHAR_MIN != 0; static constexpr bool is_modulo = CHAR_MIN == 0; + static constexpr bool traps = false; static constexpr int digits = 8 - (CHAR_MIN != 0); static constexpr int digits10 = 2; }; @@ -270,6 +271,7 @@ public: } static constexpr bool is_signed = true; + static constexpr bool traps = false; static constexpr int digits = 7; static constexpr int digits10 = 2; }; @@ -314,6 +316,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 8; static constexpr int digits10 = 2; }; @@ -359,6 +362,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 8; static constexpr int digits10 = 2; }; @@ -404,6 +408,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 16; static constexpr int digits10 = 4; }; @@ -492,6 +497,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 16; static constexpr int digits10 = 4; }; @@ -536,6 +542,7 @@ public: } static constexpr bool is_signed = true; + static constexpr bool traps = false; static constexpr int digits = 15; static constexpr int digits10 = 4; }; @@ -714,6 +721,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 16; static constexpr int digits10 = 4; }; diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 2b1ea6a7187..f9a3052a333 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -27,14 +27,20 @@ constexpr bool traps_ = std::numeric_limits::traps; static_assert(traps_ == _Integer_zero_division_traps, "integer trap behavior should match the expectation from the current platform and complier"); -static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_ // +static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_, - "all integers should trap or not trap equally"); + "all non-promoted integers should trap or not trap equally"); static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); +static_assert( + !traps_ && !traps_ && !traps_ && !traps_ && !traps_, + "promoted integers do not trap for a moot reason; see LWG-554 resolution"); + +#ifdef __cpp_char8_t +static_assert(!traps_, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); +#endif + static_assert(!traps_ && !traps_ && !traps_, "floats don't trap because even if '/fp:except' is passed, it should be enabled at runtime"); From 1354e26edebc94aa1ed7be4d8292ba5a99983011 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 13:01:35 +0200 Subject: [PATCH 20/29] missing wchar_t --- .../GH_005816_numeric_limits_traps/test.compile.pass.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index f9a3052a333..9bebb03cfc9 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -34,8 +34,8 @@ static_assert(traps_ == traps_ && traps_ == tra static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); -static_assert( - !traps_ && !traps_ && !traps_ && !traps_ && !traps_, +static_assert(!traps_ && !traps_ && !traps_ // + && !traps_ && !traps_ && !traps_, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); #ifdef __cpp_char8_t From 870d8ee6d5fefaa64e86e187c27f119d4edfd96d Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 13:31:49 +0200 Subject: [PATCH 21/29] missing short --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 9bebb03cfc9..92cec3ba470 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -35,7 +35,7 @@ static_assert(traps_ == traps_ && traps_ == tra static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); static_assert(!traps_ && !traps_ && !traps_ // - && !traps_ && !traps_ && !traps_, + && !traps_ && !traps_ && !traps_ && !traps_, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); #ifdef __cpp_char8_t From a10866e337866d1c6d1d052b4def63c402aaef18 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 13:32:12 +0200 Subject: [PATCH 22/29] Avoid variable and comments --- .../test.compile.pass.cpp | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 92cec3ba470..c53d121cdb4 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -3,30 +3,25 @@ #include +template +constexpr bool traps_ = std::numeric_limits::traps; + #if defined(_M_IX86) || defined(_M_X64) && !defined(_M_ARM64EC) -// The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1 -// It is translated to the corresponding SEH exceptions -constexpr bool _Integer_zero_division_traps = true; +static_assert(traps_, + "The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1. " + "It is translated to the corresponding SEH exceptions"); #elif defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) // The hardware does not trap. #ifdef __clang__ -// Clang compiles code as is, so there's no trap -constexpr bool _Integer_zero_division_traps = false; +static_assert(!traps_, "Clang compiles code as is, so there's no trap"); #else // ^^^ defined(__clang__) / !defined(__clang__) vvv -// MSVC inserts check for zero to trap zero division. -// It does not insert checks for INT_MIN/-1 division overflow though. -constexpr bool _Integer_zero_division_traps = true; +static_assert(traps_, "MSVC inserts check for zero to trap zero division. " + "It does not insert checks for INT_MIN/-1 division overflow though."); #endif // ^^^ !defined(__clang__) ^^^ #else // ^^^ defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) ^^^ #error Unsupported hardware #endif -template -constexpr bool traps_ = std::numeric_limits::traps; - -static_assert(traps_ == _Integer_zero_division_traps, - "integer trap behavior should match the expectation from the current platform and complier"); - static_assert(traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_, From b60b033371ad96ff0d1b0e517b4ae03f729ab74e Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 13:34:37 +0200 Subject: [PATCH 23/29] unnecessary transitivity --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index c53d121cdb4..009a1d3b4a3 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -22,7 +22,7 @@ static_assert(traps_, "MSVC inserts check for zero to trap zero division. " #error Unsupported hardware #endif -static_assert(traps_ == traps_ && traps_ == traps_ +static_assert(traps_ == traps_ && traps_ == traps_ // && traps_ == traps_ && traps_ == traps_ && traps_ == traps_ && traps_ == traps_, "all non-promoted integers should trap or not trap equally"); From a9ae3eb2e37a2a0f7cfb3c8e3dd2f7fb0e98e386 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sat, 15 Nov 2025 14:08:30 +0200 Subject: [PATCH 24/29] even fewer comments --- .../GH_005816_numeric_limits_traps/test.compile.pass.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 009a1d3b4a3..ee4316c57ae 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -11,12 +11,11 @@ static_assert(traps_, "The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1. " "It is translated to the corresponding SEH exceptions"); #elif defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) -// The hardware does not trap. #ifdef __clang__ -static_assert(!traps_, "Clang compiles code as is, so there's no trap"); +static_assert(!traps_, "The hardware does not trap. Clang compiles code as is, so there's no trap"); #else // ^^^ defined(__clang__) / !defined(__clang__) vvv -static_assert(traps_, "MSVC inserts check for zero to trap zero division. " - "It does not insert checks for INT_MIN/-1 division overflow though."); +static_assert(traps_, "The hardware does not trap. MSVC inserts check for zero to trap zero division. " + "It does not insert checks for INT_MIN/-1 division overflow though"); #endif // ^^^ !defined(__clang__) ^^^ #else // ^^^ defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) ^^^ #error Unsupported hardware From 167deb4ec8efcf7890def9330851d2745cdd4179 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 16 Nov 2025 11:37:12 +0200 Subject: [PATCH 25/29] Don't trap on promoted uint32_t --- stl/inc/limits | 1 + .../test.compile.pass.cpp | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/stl/inc/limits b/stl/inc/limits index c39893639b8..e97fb16359a 100644 --- a/stl/inc/limits +++ b/stl/inc/limits @@ -453,6 +453,7 @@ public: } static constexpr bool is_modulo = true; + static constexpr bool traps = false; static constexpr int digits = 32; static constexpr int digits10 = 9; }; diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index ee4316c57ae..1f582c5511c 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -21,15 +21,24 @@ static_assert(traps_, "The hardware does not trap. MSVC inserts check for z #error Unsupported hardware #endif -static_assert(traps_ == traps_ && traps_ == traps_ // - && traps_ == traps_ && traps_ == traps_ - && traps_ == traps_ && traps_ == traps_, +template +constexpr bool promoted_and_traps_if_int_does = std::is_same_v && traps_ == traps_; + +static_assert(promoted_and_traps_if_int_does // + && promoted_and_traps_if_int_does && promoted_and_traps_if_int_does + && promoted_and_traps_if_int_does && promoted_and_traps_if_int_does, "all non-promoted integers should trap or not trap equally"); +template +constexpr bool not_promoted_and_does_not_trap = !std::is_same_v && !traps_; + static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); -static_assert(!traps_ && !traps_ && !traps_ // - && !traps_ && !traps_ && !traps_ && !traps_, +static_assert(not_promoted_and_does_not_trap && not_promoted_and_does_not_trap + && not_promoted_and_does_not_trap // + && not_promoted_and_does_not_trap && not_promoted_and_does_not_trap + && not_promoted_and_does_not_trap && not_promoted_and_does_not_trap + && not_promoted_and_does_not_trap, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); #ifdef __cpp_char8_t From 6780f4c5290954e2f2e995c34b43eae97dde7292 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 16 Nov 2025 11:37:35 +0200 Subject: [PATCH 26/29] elaborate --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index 1f582c5511c..c03a492518f 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -9,7 +9,7 @@ constexpr bool traps_ = std::numeric_limits::traps; #if defined(_M_IX86) || defined(_M_X64) && !defined(_M_ARM64EC) static_assert(traps_, "The #ED hardware exception always happens for zero division and for division overflow INT_MIN/-1. " - "It is translated to the corresponding SEH exceptions"); + "These are translated to STATUS_INTEGER_DIVIDE_BY_ZERO and STATUS_INTEGER_OVERFLOW SEH exceptions"); #elif defined(_M_ARM64) || defined(_M_ARM64EC) || defined(_M_HYBRID_X86_ARM64) #ifdef __clang__ static_assert(!traps_, "The hardware does not trap. Clang compiles code as is, so there's no trap"); From a6936c2d367aa1b0b4cccfb00b949ac0daa2ef57 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 16 Nov 2025 11:44:18 +0200 Subject: [PATCH 27/29] backwards --- .../test.compile.pass.cpp | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index c03a492518f..e9e899c7728 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -22,27 +22,29 @@ static_assert(traps_, "The hardware does not trap. MSVC inserts check for z #endif template -constexpr bool promoted_and_traps_if_int_does = std::is_same_v && traps_ == traps_; +constexpr bool non_promoted_and_traps_if_int_does = std::is_same_v && traps_ == traps_; -static_assert(promoted_and_traps_if_int_does // - && promoted_and_traps_if_int_does && promoted_and_traps_if_int_does - && promoted_and_traps_if_int_does && promoted_and_traps_if_int_does, +static_assert(non_promoted_and_traps_if_int_does // + && non_promoted_and_traps_if_int_does && non_promoted_and_traps_if_int_does + && non_promoted_and_traps_if_int_does + && non_promoted_and_traps_if_int_does, "all non-promoted integers should trap or not trap equally"); template -constexpr bool not_promoted_and_does_not_trap = !std::is_same_v && !traps_; +constexpr bool promoted_and_does_not_trap = !std::is_same_v && !traps_; -static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); +static_assert(promoted_and_does_not_trap, "bool does not trap for a moot reason; see LWG-554 resolution"); -static_assert(not_promoted_and_does_not_trap && not_promoted_and_does_not_trap - && not_promoted_and_does_not_trap // - && not_promoted_and_does_not_trap && not_promoted_and_does_not_trap - && not_promoted_and_does_not_trap && not_promoted_and_does_not_trap - && not_promoted_and_does_not_trap, +static_assert(promoted_and_does_not_trap && promoted_and_does_not_trap + && promoted_and_does_not_trap // + && promoted_and_does_not_trap && promoted_and_does_not_trap + && promoted_and_does_not_trap && promoted_and_does_not_trap + && promoted_and_does_not_trap, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); #ifdef __cpp_char8_t -static_assert(!traps_, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); +static_assert( + promoted_and_does_not_trap, "promoted integers do not trap for a moot reason; see LWG-554 resolution"); #endif static_assert(!traps_ && !traps_ && !traps_, From 44ef94fb2100c133b177c1cc517693b03b1441f6 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Sun, 16 Nov 2025 11:45:45 +0200 Subject: [PATCH 28/29] don't binary negate bool --- .../tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp index e9e899c7728..6df0f83a307 100644 --- a/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp +++ b/tests/std/tests/GH_005816_numeric_limits_traps/test.compile.pass.cpp @@ -33,7 +33,7 @@ static_assert(non_promoted_and_traps_if_int_does // template constexpr bool promoted_and_does_not_trap = !std::is_same_v && !traps_; -static_assert(promoted_and_does_not_trap, "bool does not trap for a moot reason; see LWG-554 resolution"); +static_assert(!traps_, "bool does not trap for a moot reason; see LWG-554 resolution"); static_assert(promoted_and_does_not_trap && promoted_and_does_not_trap && promoted_and_does_not_trap // From 2ec9e138c911a2ddc797a504f86d763b5eae1104 Mon Sep 17 00:00:00 2001 From: Alex Guteniev Date: Wed, 21 Jan 2026 08:45:34 +0200 Subject: [PATCH 29/29] fix formatting --- tests/std/test.lst | 1646 ++++++++++++++++++++++---------------------- 1 file changed, 823 insertions(+), 823 deletions(-) diff --git a/tests/std/test.lst b/tests/std/test.lst index e4056397cb2..72b3b6f0882 100644 --- a/tests/std/test.lst +++ b/tests/std/test.lst @@ -1,823 +1,823 @@ -# Copyright (c) Microsoft Corporation. -# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception - -# CUDA is not available in the MSVC-internal test harness: -# tests\GH_000639_nvcc_include_all - -# Needs special machinery to work in the MSVC-internal test harness, not yet implemented: -# tests\GH_002094_cpp_core_guidelines - -tests\Dev08_496675_iostream_int_reading -tests\Dev08_527068_scl_no_exceptions -tests\Dev08_563686_ostream -tests\Dev08_563705_std_malloc_free -tests\Dev08_576265_list_remove -tests\Dev08_584299_search_n -tests\Dev09_012361_vector_swap -tests\Dev09_052961_has_iterator_debugging_0 -tests\Dev09_056375_locale_cleanup -tests\Dev09_098637_stl_function_typeids -tests\Dev09_119637_throwing_string_with_hid0 -tests\Dev09_119644_compiler_option_gz -tests\Dev09_126254_persistent_aux_allocators -tests\Dev09_130060_unique_copy -tests\Dev09_152755_tr1_nested_bind -tests\Dev09_153419_tr1_allocators -tests\Dev09_154033_tr1_predicate_search_n -tests\Dev09_155328_tr1_vector_of_set -tests\Dev09_158181_tr1_unordered_meow_swap -tests\Dev09_158457_tr1_mem_fn_calling_conventions -tests\Dev09_161106_tr1_bind_templated_fxn_call_operator -tests\Dev09_165853_tr1_tuple_swap -tests\Dev09_171205_tr1_assign_pair_to_tuple -tests\Dev09_172497_tr1_mem_fn_const_correctness -tests\Dev09_172505_tr1_bind_reference_wrapper -tests\Dev09_172666_tr1_tuple_odr -tests\Dev09_173612_tr1_regex_leak -tests\Dev09_174589_tr1_function_storing_pmf_called_with_reference_or_pointer -tests\Dev09_175314_tr1_reference_wrapper_assignment -tests\Dev09_175716_tr1_dereferencing_reference_wrapper -tests\Dev09_176467_tr1_make_tuple_from_string_literal -tests\Dev09_176498_tr1_binding_functors_with_non_const_fxn_call_ops -tests\Dev09_181509_tr1_inf_loop_uniform_int_ull -tests\Dev09_182017_tr1_search_n -tests\Dev09_186118_stoullx_corner_cases -tests\Dev09_192736_tr1_prngs_not_copyconstructible -tests\Dev09_195561_tr1_function_const_op -tests\Dev09_196243_tr1_enable_shared_from_this_ops -tests\Dev09_199123_tr1_mem_fun_abstract_classes -tests\Dev10_391723_bind_result_type -tests\Dev10_414242_facet_bug_use_facet_ctype_char -tests\Dev10_441756_function_reference_wrapper -tests\Dev10_445289_make_shared -tests\Dev10_470547_facet_bug_stringstream -tests\Dev10_482830_header_only_string -tests\Dev10_491486_floating_point_hash -tests\Dev10_492345_tr1_function_swap -tests\Dev10_498944_enable_shared_from_this_auto_ptr -tests\Dev10_500860_overloaded_address_of -tests\Dev10_544258_heterogeneous_comparisons -tests\Dev10_555491_complex_linker_errors -tests\Dev10_561430_list_and_tree_leaks -tests\Dev10_562056_tree_leak -tests\Dev10_563443_empty_vector_begin_plus_zero -tests\Dev10_567556_move_from_empty_list -tests\Dev10_579381_vector_grow_to -tests\Dev10_590599_hash_string -tests\Dev10_609053_ctype_char_table_size -tests\Dev10_617014_tuple_tie -tests\Dev10_632876_regex_proxy -tests\Dev10_635436_shared_ptr_reset -tests\Dev10_639436_const_map_at -tests\Dev10_646244_bad_alloc_message -tests\Dev10_646556_construct_tuple_from_const -tests\Dev10_654977_655012_shared_ptr_move -tests\Dev10_661739_tuple_copy_ctors -tests\Dev10_682964_stable_sort_warnings -tests\Dev10_689595_back_inserter_vector_bool -tests\Dev10_709168_marking_iterators_as_checked -tests\Dev10_722102_shared_ptr_nullptr -tests\Dev10_729003_bind_reference_wrapper -tests\Dev10_766948_insert_ambiguity -tests\Dev10_780098_movable_elements -tests\Dev10_783436_rvalue_string_plus -tests\Dev10_809142_copy_n_istream_iterator -tests\Dev10_814245_regex_character_class_crash -tests\Dev10_816787_swap_vector_bool_elements -tests\Dev10_847656_shared_ptr_is_convertible -tests\Dev10_851347_weak_ptr_virtual_inheritance -tests\Dev10_860410_bitset_ctors -tests\Dev10_860421_deque_push_back_pop_front -tests\Dev10_881629_vector_erase_return_value -tests\Dev10_904413_moved_from_function_should_be_empty -tests\Dev10_905461_is_sorted_until -tests\Dev10_908702_string_memory_leak -tests\Dev10_909646_stringstream_vd2 -tests\Dev11_0000000_dual_range_algorithms -tests\Dev11_0000000_function_crashes -tests\Dev11_0000000_include_each_header_alone -tests\Dev11_0000000_null_forward_iterators -tests\Dev11_0000000_quoted -tests\Dev11_0000000_rotate_test -tests\Dev11_0000000_tuple_cat -tests\Dev11_0000000_user_defined_literals -tests\Dev11_0019127_singular_iterators -tests\Dev11_0091392_string_erase_resize_perf -tests\Dev11_0133625_locale0_implib_cpp -tests\Dev11_0135139_vector_bool_comparisons -tests\Dev11_0235721_async_and_packaged_task -tests\Dev11_0253803_debug_pointer -tests\Dev11_0272959_make_signed -tests\Dev11_0289403_partition_point_complexity -tests\Dev11_0299014_exception_ptr_requirements -tests\Dev11_0302476_pair_move -tests\Dev11_0314451_make_pair_make_tuple -tests\Dev11_0316853_find_memchr_optimization -tests\Dev11_0343056_pair_tuple_ctor_sfinae -tests\Dev11_0376122_grand_theft_bind -tests\Dev11_0377755_thread_ctor_move_only_types -tests\Dev11_0387701_container_equality -tests\Dev11_0417110_nullptr_t_is_scalar -tests\Dev11_0435439_call_once_deadlock -tests\Dev11_0437519_container_behavior -tests\Dev11_0437519_container_requirements -tests\Dev11_0447546_facet_allocation -tests\Dev11_0483851_vector_debug_allocator_use -tests\Dev11_0485243_condition_variable_crash -tests\Dev11_0493504_error_category_lifetime -tests\Dev11_0494593_time_put_wchar_t -tests\Dev11_0496153_locale_ctor -tests\Dev11_0532622_minmax_element -tests\Dev11_0535636_functional_overhaul -tests\Dev11_0555154_system_clock_to_time_t -tests\Dev11_0577418_random_seed_0 -tests\Dev11_0579795_inplace_merge_out_of_memory -tests\Dev11_0607540_pair_tuple_rvalue_references -tests\Dev11_0617384_empty_std_function -tests\Dev11_0653897_codecvt_partial -tests\Dev11_0671816_list_splice -tests\Dev11_0696045_future_wait_for -tests\Dev11_0704582_ratio -tests\Dev11_0732166_unordered_strong_guarantee -tests\Dev11_0748972_function_crash_out_of_memory -tests\Dev11_0823534_transparent_lookup -tests\Dev11_0835323_to_string -tests\Dev11_0836436_get_time -tests\Dev11_0845312_comprehensive_floating_point -tests\Dev11_0863628_atomic_compare_exchange -tests\Dev11_0920385_list_sort_allocator -tests\Dev11_1003120_search_test -tests\Dev11_1066589_shared_ptr_atomic_deadlock -tests\Dev11_1066931_filesystem_rename_noop -tests\Dev11_1074023_constexpr -tests\Dev11_1086953_call_once_overhaul -tests\Dev11_1114006_condition_variable_pred -tests\Dev11_1127004_future_has_exceptions_0 -tests\Dev11_1131212_uncaught_exceptions -tests\Dev11_1137366_nested_exception -tests\Dev11_1140665_unique_ptr_array_conversions -tests\Dev11_1150223_shared_mutex -tests\Dev11_1158803_regex_thread_safety -tests\Dev11_1180290_filesystem_error_code -tests\GH_000073_regex_multiline_escape_hatch -tests\GH_000140_adl_proof_comparison -tests\GH_000140_adl_proof_construction -tests\GH_000140_adl_proof_views -tests\GH_000177_forbidden_aliasing -tests\GH_000178_uniform_int -tests\GH_000342_filebuf_close -tests\GH_000431_copy_move_family -tests\GH_000431_equal_family -tests\GH_000431_equal_memcmp_is_safe -tests\GH_000431_iter_copy_move_cat -tests\GH_000431_lex_compare_family -tests\GH_000431_lex_compare_memcmp_classify -tests\GH_000442_random_subtract_with_carry_engine_io -tests\GH_000457_system_error_message -tests\GH_000519_cmath_overloads -tests\GH_000527_remove_allocator_void -tests\GH_000545_include_compare -tests\GH_000625_vector_bool_optimization -tests\GH_000685_condition_variable_any -tests\GH_000690_overaligned_function -tests\GH_000732_hash_reserve -tests\GH_000856_nth_element_linear -tests\GH_000890_pow_template -tests\GH_000935_complex_numerical_accuracy -tests\GH_000940_missing_valarray_copy -tests\GH_000952_bind_constraints -tests\GH_000990_any_link_without_exceptions -tests\GH_000995_regex_custom_char_types -tests\GH_001001_random_rejection_rounding -tests\GH_001010_filesystem_error_encoding -tests\GH_001017_discrete_distribution_out_of_range -tests\GH_001059_hyperbolic_truncation -tests\GH_001086_partial_sort_copy -tests\GH_001103_countl_zero_correctness -tests\GH_001105_custom_streambuf_throws -tests\GH_001123_random_cast_out_of_range -tests\GH_001277_num_get_bad_grouping -tests\GH_001394_msvc_no_unique_address_23 -tests\GH_001411_core_headers -tests\GH_001530_binomial_accuracy -tests\GH_001541_case_sensitive_boolalpha -tests\GH_001596_adl_proof_algorithms -tests\GH_001638_dllexport_derived_classes -tests\GH_001850_clog_tied_to_cout -tests\GH_001858_iostream_exception -tests\GH_001912_random_distribution_operator_const -tests\GH_001914_cached_position -tests\GH_001923_filesystem_long_path_support -tests\GH_002030_asan_annotate_string -tests\GH_002030_asan_annotate_vector -tests\GH_002039_byte_is_not_trivially_swappable -tests\GH_002045_put_time_changes_errno -tests\GH_002058_debug_iterator_race -tests\GH_002120_streambuf_seekpos_and_seekoff -tests\GH_002168_regex_overflow -tests\GH_002206_unreserved_names -tests\GH_002299_implicit_sfinae_constraints -tests\GH_002307_usual_scope_guard -tests\GH_002334_branchless_clamp -tests\GH_002431_byte_range_find_with_unreachable_sentinel -tests\GH_002488_promise_not_default_constructible_types -tests\GH_002558_format_presetPadding -tests\GH_002581_common_reference_workaround -tests\GH_002620_construct_at_workaround -tests\GH_002655_alternate_name_broke_linker -tests\GH_002711_Zc_alignedNew- -tests\GH_002760_syncstream_memory_leak -tests\GH_002769_handle_deque_block_pointers -tests\GH_002789_Hash_vec_Tidy -tests\GH_002885_stable_sort_difference_type -tests\GH_002989_nothrow_unwrappable -tests\GH_002992_unwrappable_iter_sent_pairs -tests\GH_003003_format_decimal_point -tests\GH_003022_substr_allocator -tests\GH_003105_piecewise_densities -tests\GH_003119_error_category_ctor -tests\GH_003246_cmath_narrowing -tests\GH_003570_allocate_at_least -tests\GH_003617_vectorized_meow_element -tests\GH_003663_cast_contiguous_iterator_difference_type -tests\GH_003676_format_large_hh_mm_ss_values -tests\GH_003735_char_traits_signatures -tests\GH_003840_tellg_when_reading_lf_file_in_text_mode -tests\GH_003867_output_nan -tests\GH_004023_mdspan_fwd_prod_overflow -tests\GH_004040_container_nonmember_functions -tests\GH_004108_some_ranges_algos_construct_wrong_type -tests\GH_004109_iter_value_t_direct_initialization -tests\GH_004129_conversion_in_new_numeric_algorithms -tests\GH_004201_chrono_formatter -tests\GH_004275_seeking_fancy_iterators -tests\GH_004388_unordered_meow_operator_equal -tests\GH_004477_mdspan_warning_5246 -tests\GH_004597_self_swap -tests\GH_004609_heterogeneous_cmp_overloads -tests\GH_004618_mixed_operator_usage_keeps_statistical_properties -tests\GH_004618_normal_distribution_avoids_resets -tests\GH_004657_expected_constraints_permissive -tests\GH_004686_vectorization_on_trivial_assignability -tests\GH_004845_logical_operator_traits_with_non_bool_constant -tests\GH_004929_internal_tag_constructors -tests\GH_004930_char_traits_user_specialization -tests\GH_005090_stl_hardening -tests\GH_005090_stl_hardening_cxx20_iterators -tests\GH_005204_regex_collating_ranges -tests\GH_005236_collate_facet -tests\GH_005244_regex_escape_sequences -tests\GH_005276_system_error_heap_use_after_free -tests\GH_005315_destructor_tombstones -tests\GH_005402_string_with_volatile_range -tests\GH_005421_vector_algorithms_integer_class_type_iterator -tests\GH_005472_do_not_overlap -tests\GH_005504_avoid_function_call_wrapping -tests\GH_005546_containers_size_type_cast -tests\GH_005553_regex_character_translation -tests\GH_005768_pow_accuracy -tests\GH_005800_stable_sort_large_alignment -tests\GH_005816_numeric_limits_traps -tests\GH_005968_headers_provide_begin_end -tests\LWG2381_num_get_floating_point -tests\LWG2510_tag_classes -tests\LWG2597_complex_branch_cut -tests\LWG3018_shared_ptr_function -tests\LWG3121_constrained_tuple_forwarding_ctor -tests\LWG3146_excessive_unwrapping_ref_cref -tests\LWG3234_math_special_overloads -tests\LWG3422_seed_seq_ctors -tests\LWG3480_directory_iterator_range -tests\LWG3528_make_from_tuple_impl -tests\LWG3545_pointer_traits_sfinae -tests\LWG3561_discard_block_engine_counter -tests\LWG3610_iota_view_size_and_integer_class -tests\LWG4084_iostream_uppercase_inf_nan -tests\LWG4105_ranges_ends_with_and_integer_class -tests\LWG4172_unique_lock_self_move_assignment -tests\P0009R18_mdspan_default_accessor -tests\P0009R18_mdspan_extents -tests\P0009R18_mdspan_extents_death -tests\P0009R18_mdspan_layout_left -tests\P0009R18_mdspan_layout_left_death -tests\P0009R18_mdspan_layout_right -tests\P0009R18_mdspan_layout_right_death -tests\P0009R18_mdspan_layout_stride -tests\P0009R18_mdspan_layout_stride_death -tests\P0009R18_mdspan_mdspan -tests\P0009R18_mdspan_mdspan_death -tests\P0009R18_mdspan_msabi -tests\P0019R8_atomic_ref -tests\P0024R2_parallel_algorithms_adjacent_difference -tests\P0024R2_parallel_algorithms_adjacent_find -tests\P0024R2_parallel_algorithms_all_of -tests\P0024R2_parallel_algorithms_count -tests\P0024R2_parallel_algorithms_equal -tests\P0024R2_parallel_algorithms_exclusive_scan -tests\P0024R2_parallel_algorithms_find -tests\P0024R2_parallel_algorithms_find_end -tests\P0024R2_parallel_algorithms_find_first_of -tests\P0024R2_parallel_algorithms_for_each -tests\P0024R2_parallel_algorithms_inclusive_scan -tests\P0024R2_parallel_algorithms_is_heap -tests\P0024R2_parallel_algorithms_is_partitioned -tests\P0024R2_parallel_algorithms_is_sorted -tests\P0024R2_parallel_algorithms_mismatch -tests\P0024R2_parallel_algorithms_partition -tests\P0024R2_parallel_algorithms_reduce -tests\P0024R2_parallel_algorithms_remove -tests\P0024R2_parallel_algorithms_replace -tests\P0024R2_parallel_algorithms_search -tests\P0024R2_parallel_algorithms_search_n -tests\P0024R2_parallel_algorithms_set_difference -tests\P0024R2_parallel_algorithms_set_intersection -tests\P0024R2_parallel_algorithms_sort -tests\P0024R2_parallel_algorithms_stable_sort -tests\P0024R2_parallel_algorithms_transform -tests\P0024R2_parallel_algorithms_transform_exclusive_scan -tests\P0024R2_parallel_algorithms_transform_inclusive_scan -tests\P0024R2_parallel_algorithms_transform_reduce -tests\P0035R4_over_aligned_allocation -tests\P0040R3_extending_memory_management_tools -tests\P0040R3_parallel_memory_algorithms -tests\P0053R7_cpp_synchronized_buffered_ostream -tests\P0067R5_charconv -tests\P0083R3_splicing_maps_and_sets -tests\P0088R3_variant -tests\P0088R3_variant_msvc -tests\P0092R1_polishing_chrono -tests\P0122R7_span -tests\P0122R7_span_death -tests\P0137R1_launder -tests\P0156R2_scoped_lock -tests\P0202R3_constexpr_algorithm_and_exchange -tests\P0218R1_filesystem -tests\P0220R1_any -tests\P0220R1_optional -tests\P0220R1_optional_death -tests\P0220R1_polymorphic_memory_resources -tests\P0220R1_sample -tests\P0220R1_searchers -tests\P0220R1_string_view -tests\P0226R1_math_special_functions -tests\P0288R9_move_only_function -tests\P0295R0_gcd_lcm -tests\P0323R12_expected -tests\P0325R4_to_array -tests\P0339R6_polymorphic_allocator -tests\P0355R7_calendars_and_time_zones_clocks -tests\P0355R7_calendars_and_time_zones_dates -tests\P0355R7_calendars_and_time_zones_dates_literals -tests\P0355R7_calendars_and_time_zones_formatting -tests\P0355R7_calendars_and_time_zones_hms -tests\P0355R7_calendars_and_time_zones_io -tests\P0355R7_calendars_and_time_zones_time_point_and_durations -tests\P0355R7_calendars_and_time_zones_time_zones -tests\P0355R7_calendars_and_time_zones_zoned_time -tests\P0356R5_bind_front -tests\P0357R3_supporting_incomplete_types_in_reference_wrapper -tests\P0401R6_allocate_at_least -tests\P0408R7_efficient_access_to_stringbuf_buffer -tests\P0414R2_shared_ptr_for_arrays -tests\P0415R1_constexpr_complex -tests\P0426R1_constexpr_char_traits -tests\P0433R2_deduction_guides -tests\P0448R4_iosfwd -tests\P0448R4_spanstream -tests\P0466R5_layout_compatibility_and_pointer_interconvertibility_traits -tests\P0475R1_P0591R4_uses_allocator_construction -tests\P0476R2_bit_cast -tests\P0487R1_fixing_operator_shl_basic_istream_char_pointer -tests\P0513R0_poisoning_the_hash -tests\P0528R3_cmpxchg_pad -tests\P0553R4_bit_rotating_and_counting_functions -tests\P0556R3_bit_integral_power_of_two_operations -tests\P0586R2_integer_comparison -tests\P0595R2_is_constant_evaluated -tests\P0607R0_inline_variables -tests\P0608R3_improved_variant_converting_constructor -tests\P0616R0_using_move_in_numeric -tests\P0627R6_unreachable -tests\P0631R8_numbers_math_constants -tests\P0645R10_text_formatting_args -tests\P0645R10_text_formatting_custom_formatting -tests\P0645R10_text_formatting_death -tests\P0645R10_text_formatting_formatting -tests\P0645R10_text_formatting_grapheme_clusterization -tests\P0645R10_text_formatting_legacy_text_encoding -tests\P0645R10_text_formatting_parse_contexts -tests\P0645R10_text_formatting_parsing -tests\P0645R10_text_formatting_utf8 -tests\P0660R10_jthread_and_cv_any -tests\P0660R10_stop_token -tests\P0660R10_stop_token_death -tests\P0674R1_make_shared_for_arrays -tests\P0718R2_atomic_smart_ptrs -tests\P0753R2_manipulators_for_cpp_synchronized_buffered_ostream -tests\P0758R1_is_nothrow_convertible -tests\P0768R1_spaceship_cpos -tests\P0768R1_spaceship_operator -tests\P0769R2_shift_left_shift_right -tests\P0784R7_library_machinery -tests\P0784R7_library_support_for_more_constexpr_containers -tests\P0798R8_monadic_operations_for_std_optional -tests\P0811R3_midpoint_lerp -tests\P0881R7_stacktrace -tests\P0896R4_and_P1614R2_comparisons -tests\P0896R4_common_iterator -tests\P0896R4_common_iterator_death -tests\P0896R4_counted_iterator -tests\P0896R4_counted_iterator_death -tests\P0896R4_istream_view -tests\P0896R4_istream_view_death -tests\P0896R4_ranges_alg_adjacent_find -tests\P0896R4_ranges_alg_all_of -tests\P0896R4_ranges_alg_any_of -tests\P0896R4_ranges_alg_binary_search -tests\P0896R4_ranges_alg_copy -tests\P0896R4_ranges_alg_copy_backward -tests\P0896R4_ranges_alg_copy_if -tests\P0896R4_ranges_alg_copy_n -tests\P0896R4_ranges_alg_count -tests\P0896R4_ranges_alg_count_if -tests\P0896R4_ranges_alg_equal -tests\P0896R4_ranges_alg_fill -tests\P0896R4_ranges_alg_fill_n -tests\P0896R4_ranges_alg_find -tests\P0896R4_ranges_alg_find_end -tests\P0896R4_ranges_alg_find_first_of -tests\P0896R4_ranges_alg_find_if -tests\P0896R4_ranges_alg_find_if_not -tests\P0896R4_ranges_alg_for_each -tests\P0896R4_ranges_alg_for_each_n -tests\P0896R4_ranges_alg_generate -tests\P0896R4_ranges_alg_generate_n -tests\P0896R4_ranges_alg_heap -tests\P0896R4_ranges_alg_includes -tests\P0896R4_ranges_alg_inplace_merge -tests\P0896R4_ranges_alg_is_permutation -tests\P0896R4_ranges_alg_is_sorted -tests\P0896R4_ranges_alg_lexicographical_compare -tests\P0896R4_ranges_alg_merge -tests\P0896R4_ranges_alg_minmax -tests\P0896R4_ranges_alg_mismatch -tests\P0896R4_ranges_alg_move -tests\P0896R4_ranges_alg_move_backward -tests\P0896R4_ranges_alg_none_of -tests\P0896R4_ranges_alg_nth_element -tests\P0896R4_ranges_alg_partial_sort -tests\P0896R4_ranges_alg_partial_sort_copy -tests\P0896R4_ranges_alg_partition -tests\P0896R4_ranges_alg_partition_copy -tests\P0896R4_ranges_alg_partition_point -tests\P0896R4_ranges_alg_permutations -tests\P0896R4_ranges_alg_remove -tests\P0896R4_ranges_alg_remove_copy -tests\P0896R4_ranges_alg_remove_copy_if -tests\P0896R4_ranges_alg_remove_if -tests\P0896R4_ranges_alg_replace -tests\P0896R4_ranges_alg_replace_copy -tests\P0896R4_ranges_alg_replace_copy_if -tests\P0896R4_ranges_alg_replace_if -tests\P0896R4_ranges_alg_reverse -tests\P0896R4_ranges_alg_reverse_copy -tests\P0896R4_ranges_alg_rotate -tests\P0896R4_ranges_alg_rotate_copy -tests\P0896R4_ranges_alg_sample -tests\P0896R4_ranges_alg_search -tests\P0896R4_ranges_alg_search_n -tests\P0896R4_ranges_alg_set_difference -tests\P0896R4_ranges_alg_set_intersection -tests\P0896R4_ranges_alg_set_symmetric_difference -tests\P0896R4_ranges_alg_set_union -tests\P0896R4_ranges_alg_shuffle -tests\P0896R4_ranges_alg_sort -tests\P0896R4_ranges_alg_stable_partition -tests\P0896R4_ranges_alg_stable_sort -tests\P0896R4_ranges_alg_swap_ranges -tests\P0896R4_ranges_alg_transform_binary -tests\P0896R4_ranges_alg_transform_unary -tests\P0896R4_ranges_alg_uninitialized_copy -tests\P0896R4_ranges_alg_uninitialized_copy_n -tests\P0896R4_ranges_alg_uninitialized_default_construct -tests\P0896R4_ranges_alg_uninitialized_default_construct_n -tests\P0896R4_ranges_alg_uninitialized_fill -tests\P0896R4_ranges_alg_uninitialized_fill_n -tests\P0896R4_ranges_alg_uninitialized_move -tests\P0896R4_ranges_alg_uninitialized_move_n -tests\P0896R4_ranges_alg_uninitialized_value_construct -tests\P0896R4_ranges_alg_uninitialized_value_construct_n -tests\P0896R4_ranges_alg_unique -tests\P0896R4_ranges_alg_unique_copy -tests\P0896R4_ranges_algorithm_machinery -tests\P0896R4_ranges_iterator_machinery -tests\P0896R4_ranges_range_machinery -tests\P0896R4_ranges_ref_view -tests\P0896R4_ranges_subrange -tests\P0896R4_ranges_test_machinery -tests\P0896R4_ranges_to_address -tests\P0896R4_stream_iterators -tests\P0896R4_views_all -tests\P0896R4_views_common -tests\P0896R4_views_counted -tests\P0896R4_views_counted_death -tests\P0896R4_views_drop -tests\P0896R4_views_drop_death -tests\P0896R4_views_drop_while -tests\P0896R4_views_drop_while_death -tests\P0896R4_views_elements -tests\P0896R4_views_empty -tests\P0896R4_views_filter -tests\P0896R4_views_filter_death -tests\P0896R4_views_filter_iterator -tests\P0896R4_views_iota -tests\P0896R4_views_iota_death -tests\P0896R4_views_join -tests\P0896R4_views_lazy_split -tests\P0896R4_views_reverse -tests\P0896R4_views_single -tests\P0896R4_views_split -tests\P0896R4_views_take -tests\P0896R4_views_take_death -tests\P0896R4_views_take_while -tests\P0896R4_views_take_while_death -tests\P0896R4_views_transform -tests\P0896R4_views_transform_death -tests\P0898R3_concepts -tests\P0898R3_identity -tests\P0912R5_coroutine -tests\P0919R3_heterogeneous_unordered_lookup -tests\P0943R6_stdatomic_h -tests\P0952R2_new_generate_canonical -tests\P0966R1_string_reserve_should_not_shrink -tests\P0980R1_constexpr_strings -tests\P1004R2_constexpr_vector -tests\P1004R2_constexpr_vector_bool -tests\P1007R3_assume_aligned -tests\P1020R1_smart_pointer_for_overwrite -tests\P1023R0_constexpr_for_array_comparisons -tests\P1032R1_miscellaneous_constexpr -tests\P1132R7_out_ptr -tests\P1135R6_atomic_flag_test -tests\P1135R6_atomic_wait -tests\P1135R6_barrier -tests\P1135R6_latch -tests\P1135R6_semaphore -tests\P1147R1_printing_volatile_pointers -tests\P1165R1_consistently_propagating_stateful_allocators -tests\P1169R4_static_call_operator -tests\P1206R7_deque_append_range -tests\P1206R7_deque_assign_range -tests\P1206R7_deque_from_range -tests\P1206R7_deque_insert_range -tests\P1206R7_deque_prepend_range -tests\P1206R7_forward_list_assign_range -tests\P1206R7_forward_list_from_range -tests\P1206R7_forward_list_insert_range_after -tests\P1206R7_forward_list_prepend_range -tests\P1206R7_from_range -tests\P1206R7_list_append_range -tests\P1206R7_list_assign_range -tests\P1206R7_list_from_range -tests\P1206R7_list_insert_range -tests\P1206R7_list_prepend_range -tests\P1206R7_map_from_range -tests\P1206R7_map_insert_range -tests\P1206R7_multimap_from_range -tests\P1206R7_multimap_insert_range -tests\P1206R7_multiset_from_range -tests\P1206R7_multiset_insert_range -tests\P1206R7_priority_queue_from_range -tests\P1206R7_priority_queue_push_range -tests\P1206R7_queue_from_range -tests\P1206R7_queue_push_range -tests\P1206R7_ranges_to_mappish -tests\P1206R7_ranges_to_misc -tests\P1206R7_ranges_to_sequence -tests\P1206R7_ranges_to_settish -tests\P1206R7_set_from_range -tests\P1206R7_set_insert_range -tests\P1206R7_stack_from_range -tests\P1206R7_stack_push_range -tests\P1206R7_string_append_range -tests\P1206R7_string_assign_range -tests\P1206R7_string_from_range -tests\P1206R7_string_insert_range -tests\P1206R7_string_replace_with_range -tests\P1206R7_unordered_map_from_range -tests\P1206R7_unordered_map_insert_range -tests\P1206R7_unordered_multimap_from_range -tests\P1206R7_unordered_multimap_insert_range -tests\P1206R7_unordered_multiset_from_range -tests\P1206R7_unordered_multiset_insert_range -tests\P1206R7_unordered_set_from_range -tests\P1206R7_unordered_set_insert_range -tests\P1206R7_vector_append_range -tests\P1206R7_vector_assign_range -tests\P1206R7_vector_from_range -tests\P1206R7_vector_insert_range -tests\P1208R6_source_location -tests\P1209R0_erase_if_erase -tests\P1223R5_ranges_alg_find_last -tests\P1223R5_ranges_alg_find_last_if -tests\P1223R5_ranges_alg_find_last_if_not -tests\P1272R4_byteswap -tests\P1423R3_char8_t_remediation -tests\P1425R4_queue_stack_constructors -tests\P1502R1_standard_library_header_units -tests\P1518R2_stop_overconstraining_allocators -tests\P1522R1_difference_type -tests\P1614R2_spaceship -tests\P1645R1_constexpr_numeric -tests\P1659R3_ranges_alg_ends_with -tests\P1659R3_ranges_alg_starts_with -tests\P1682R3_to_underlying -tests\P1899R3_views_stride -tests\P1899R3_views_stride_death -tests\P1951R1_default_arguments_pair_forward_ctor -tests\P2093R14_formatted_output -tests\P2136R3_invoke_r -tests\P2162R2_std_visit_for_derived_classes_from_variant -tests\P2164R9_views_enumerate -tests\P2165R4_tuple_like_common_reference -tests\P2165R4_tuple_like_common_type -tests\P2165R4_tuple_like_operations -tests\P2165R4_tuple_like_pair -tests\P2165R4_tuple_like_relational_operators -tests\P2165R4_tuple_like_tuple_members -tests\P2231R1_complete_constexpr_optional_variant -tests\P2255R2_invocation -tests\P2255R2_reference_constructs_from_temporary -tests\P2255R2_reference_converts_from_temporary -tests\P2255R2_tuple_pair_construction -tests\P2273R3_constexpr_unique_ptr -tests\P2278R4_basic_const_iterator -tests\P2278R4_const_span -tests\P2278R4_ranges_const_iterator_machinery -tests\P2278R4_ranges_const_range_machinery -tests\P2278R4_views_as_const -tests\P2286R8_text_formatting_container_adaptors -tests\P2286R8_text_formatting_debug_enabled_specializations -tests\P2286R8_text_formatting_escaping -tests\P2286R8_text_formatting_escaping_legacy_text_encoding -tests\P2286R8_text_formatting_escaping_utf8 -tests\P2286R8_text_formatting_formattable -tests\P2286R8_text_formatting_header_queue -tests\P2286R8_text_formatting_header_stack -tests\P2286R8_text_formatting_header_vector -tests\P2286R8_text_formatting_range_formatter -tests\P2286R8_text_formatting_range_map -tests\P2286R8_text_formatting_range_sequence -tests\P2286R8_text_formatting_range_set -tests\P2286R8_text_formatting_range_string -tests\P2286R8_text_formatting_range_string_death -tests\P2286R8_text_formatting_tuple -tests\P2286R8_text_formatting_tuple_disambiguation -tests\P2286R8_text_formatting_vector_bool_reference -tests\P2302R4_ranges_alg_contains -tests\P2302R4_ranges_alg_contains_subrange -tests\P2321R2_proxy_reference -tests\P2321R2_views_adjacent -tests\P2321R2_views_adjacent_transform -tests\P2321R2_views_zip -tests\P2321R2_views_zip_transform -tests\P2322R6_ranges_alg_fold -tests\P2374R4_checked_arithmetic_operations -tests\P2374R4_views_cartesian_product -tests\P2374R4_views_cartesian_product_death -tests\P2374R4_views_cartesian_product_recommended_practices -tests\P2387R3_bind_back -tests\P2387R3_pipe_support_for_user_defined_range_adaptors -tests\P2401R0_conditional_noexcept_for_exchange -tests\P2404R3_move_only_types_for_comparison_concepts -tests\P2408R5_ranges_iterators_to_classic_algorithms -tests\P2415R2_owning_view -tests\P2417R2_constexpr_bitset -tests\P2438R2_substr_rvalue -tests\P2440R1_ranges_alg_shift_left -tests\P2440R1_ranges_alg_shift_right -tests\P2440R1_ranges_numeric_iota -tests\P2441R2_views_join_with -tests\P2442R1_signed128_div_ceil -tests\P2442R1_views_chunk -tests\P2442R1_views_chunk_death -tests\P2442R1_views_slide -tests\P2442R1_views_slide_death -tests\P2443R1_views_chunk_by -tests\P2443R1_views_chunk_by_death -tests\P2445R1_forward_like -tests\P2446R2_views_as_rvalue -tests\P2465R3_standard_library_modules -tests\P2467R1_exclusive_mode_fstreams -tests\P2474R2_views_repeat -tests\P2474R2_views_repeat_death -tests\P2494R2_move_only_range_adaptors -tests\P2502R2_generator -tests\P2502R2_generator_death -tests\P2502R2_generator_iterator -tests\P2502R2_generator_promise -tests\P2505R5_monadic_functions_for_std_expected -tests\P2510R3_text_formatting_pointers -tests\P2517R1_apply_conditional_noexcept -tests\P2538R1_adl_proof_std_projected -tests\P2609R3_relaxing_ranges_just_a_smidge -tests\P2674R1_is_implicit_lifetime -tests\P2693R1_ostream_and_thread_id -tests\P2693R1_text_formatting_header_stacktrace -tests\P2693R1_text_formatting_header_thread -tests\P2693R1_text_formatting_stacktrace -tests\P2693R1_text_formatting_thread_id -tests\P3016R6_inconsistent_begin_end -tests\P3107R5_enabled_specializations -tests\P3349R1_contiguous_iterators_to_pointers -tests\P3503R3_packaged_task_promise_with_allocator -tests\VSO_0000000_allocator_propagation -tests\VSO_0000000_any_calling_conventions -tests\VSO_0000000_c_math_functions -tests\VSO_0000000_condition_variable_any_exceptions -tests\VSO_0000000_container_allocator_constructors -tests\VSO_0000000_exception_ptr_rethrow_seh -tests\VSO_0000000_fancy_pointers -tests\VSO_0000000_has_static_rtti -tests\VSO_0000000_initialize_everything -tests\VSO_0000000_instantiate_algorithms_16_difference_type_1 -tests\VSO_0000000_instantiate_algorithms_16_difference_type_2 -tests\VSO_0000000_instantiate_algorithms_32_difference_type_1 -tests\VSO_0000000_instantiate_algorithms_32_difference_type_2 -tests\VSO_0000000_instantiate_algorithms_64_difference_type_1 -tests\VSO_0000000_instantiate_algorithms_64_difference_type_2 -tests\VSO_0000000_instantiate_algorithms_int_1 -tests\VSO_0000000_instantiate_algorithms_int_2 -tests\VSO_0000000_instantiate_algorithms_nontrivial_1 -tests\VSO_0000000_instantiate_algorithms_nontrivial_2 -tests\VSO_0000000_instantiate_containers -tests\VSO_0000000_instantiate_iterators_misc -tests\VSO_0000000_instantiate_type_traits -tests\VSO_0000000_list_iterator_debugging -tests\VSO_0000000_list_unique_self_reference -tests\VSO_0000000_matching_npos_address -tests\VSO_0000000_more_pair_tuple_sfinae -tests\VSO_0000000_nullptr_stream_out -tests\VSO_0000000_path_stream_parameter -tests\VSO_0000000_regex_interface -tests\VSO_0000000_regex_use -tests\VSO_0000000_string_view_idl -tests\VSO_0000000_type_traits -tests\VSO_0000000_vector_algorithms -tests\VSO_0000000_vector_algorithms_floats -tests\VSO_0000000_vector_algorithms_mismatch_and_lex_compare -tests\VSO_0000000_vector_algorithms_search_n -tests\VSO_0000000_wcfb01_idempotent_container_destructors -tests\VSO_0000000_wchar_t_filebuf_xsmeown -tests\VSO_0095468_clr_exception_ptr_bad_alloc -tests\VSO_0095837_current_exception_dtor -tests\VSO_0099869_pow_float_overflow -tests\VSO_0102478_moving_allocators -tests\VSO_0104705_throwing_copy_in_current_exception -tests\VSO_0104705_throwing_copy_in_current_exception_seh -tests\VSO_0105317_expression_sfinae -tests\VSO_0118461_min_max_noexcept -tests\VSO_0121275_filesystem_canonical_should_handle_many_double_dots -tests\VSO_0121440_is_iterator_iterator_traits -tests\VSO_0131167_associative_emplacement_allocations -tests\VSO_0135428_custom_char_traits_string -tests\VSO_0144114_sleep_until -tests\VSO_0144294_unordered_map_max_bucket_count -tests\VSO_0149983_system_error_broken_pipe -tests\VSO_0157762_feature_test_macros -tests\VSO_0174871_string_replace -tests\VSO_0180466_algorithm_overhauls -tests\VSO_0180469_fill_family -tests\VSO_0191296_allocator_construct -tests\VSO_0204655_heap_algorithms_integer_overflow -tests\VSO_0224478_scoped_allocator -tests\VSO_0226079_mutex -tests\VSO_0234888_num_get_overflows -tests\VSO_0397980_codecvt_length -tests\VSO_0429900_fast_debug_range_based_for -tests\VSO_0474901_shift_jis_codecvt -tests\VSO_0493909_is_aggregate -tests\VSO_0512710_terminate_current_exception_from_noexcept_function -tests\VSO_0512710_terminate_current_exception_from_noexcept_function_2 -tests\VSO_0512710_terminate_current_exception_from_unwind -tests\VSO_0527559_pragma_managed -tests\VSO_0575109_string_ambiguous_overloads -tests\VSO_0599804_seekg_zero -tests\VSO_0644691_utf_8_codecvt -tests\VSO_0663136_string_includes_cctype -tests\VSO_0664587_lcg_divide_by_zero -tests\VSO_0677157_flist_merge_edge_cases -tests\VSO_0735700_fstream_read_over_4k -tests\VSO_0736657_unordered_assign_rehash -tests\VSO_0744055_atomic_load_8_bytes_readonly -tests\VSO_0792651_unordered_set_rehash_invalidates_key -tests\VSO_0830211_container_debugging_range_checks -tests\VSO_0849827_multicontainer_emplace_hint_position -tests\VSO_0938757_attribute_order -tests\VSO_0961751_hash_range_erase -tests\VSO_0971246_legacy_await_headers -tests\VSO_1775715_user_defined_modules -tests\VSO_1804139_static_analysis_warning_with_single_element_array -tests\VSO_1925201_iter_traits -tests\VSO_2252142_wrong_C5046 -tests\VSO_2318081_bogus_const_overloading +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# CUDA is not available in the MSVC-internal test harness: +# tests\GH_000639_nvcc_include_all + +# Needs special machinery to work in the MSVC-internal test harness, not yet implemented: +# tests\GH_002094_cpp_core_guidelines + +tests\Dev08_496675_iostream_int_reading +tests\Dev08_527068_scl_no_exceptions +tests\Dev08_563686_ostream +tests\Dev08_563705_std_malloc_free +tests\Dev08_576265_list_remove +tests\Dev08_584299_search_n +tests\Dev09_012361_vector_swap +tests\Dev09_052961_has_iterator_debugging_0 +tests\Dev09_056375_locale_cleanup +tests\Dev09_098637_stl_function_typeids +tests\Dev09_119637_throwing_string_with_hid0 +tests\Dev09_119644_compiler_option_gz +tests\Dev09_126254_persistent_aux_allocators +tests\Dev09_130060_unique_copy +tests\Dev09_152755_tr1_nested_bind +tests\Dev09_153419_tr1_allocators +tests\Dev09_154033_tr1_predicate_search_n +tests\Dev09_155328_tr1_vector_of_set +tests\Dev09_158181_tr1_unordered_meow_swap +tests\Dev09_158457_tr1_mem_fn_calling_conventions +tests\Dev09_161106_tr1_bind_templated_fxn_call_operator +tests\Dev09_165853_tr1_tuple_swap +tests\Dev09_171205_tr1_assign_pair_to_tuple +tests\Dev09_172497_tr1_mem_fn_const_correctness +tests\Dev09_172505_tr1_bind_reference_wrapper +tests\Dev09_172666_tr1_tuple_odr +tests\Dev09_173612_tr1_regex_leak +tests\Dev09_174589_tr1_function_storing_pmf_called_with_reference_or_pointer +tests\Dev09_175314_tr1_reference_wrapper_assignment +tests\Dev09_175716_tr1_dereferencing_reference_wrapper +tests\Dev09_176467_tr1_make_tuple_from_string_literal +tests\Dev09_176498_tr1_binding_functors_with_non_const_fxn_call_ops +tests\Dev09_181509_tr1_inf_loop_uniform_int_ull +tests\Dev09_182017_tr1_search_n +tests\Dev09_186118_stoullx_corner_cases +tests\Dev09_192736_tr1_prngs_not_copyconstructible +tests\Dev09_195561_tr1_function_const_op +tests\Dev09_196243_tr1_enable_shared_from_this_ops +tests\Dev09_199123_tr1_mem_fun_abstract_classes +tests\Dev10_391723_bind_result_type +tests\Dev10_414242_facet_bug_use_facet_ctype_char +tests\Dev10_441756_function_reference_wrapper +tests\Dev10_445289_make_shared +tests\Dev10_470547_facet_bug_stringstream +tests\Dev10_482830_header_only_string +tests\Dev10_491486_floating_point_hash +tests\Dev10_492345_tr1_function_swap +tests\Dev10_498944_enable_shared_from_this_auto_ptr +tests\Dev10_500860_overloaded_address_of +tests\Dev10_544258_heterogeneous_comparisons +tests\Dev10_555491_complex_linker_errors +tests\Dev10_561430_list_and_tree_leaks +tests\Dev10_562056_tree_leak +tests\Dev10_563443_empty_vector_begin_plus_zero +tests\Dev10_567556_move_from_empty_list +tests\Dev10_579381_vector_grow_to +tests\Dev10_590599_hash_string +tests\Dev10_609053_ctype_char_table_size +tests\Dev10_617014_tuple_tie +tests\Dev10_632876_regex_proxy +tests\Dev10_635436_shared_ptr_reset +tests\Dev10_639436_const_map_at +tests\Dev10_646244_bad_alloc_message +tests\Dev10_646556_construct_tuple_from_const +tests\Dev10_654977_655012_shared_ptr_move +tests\Dev10_661739_tuple_copy_ctors +tests\Dev10_682964_stable_sort_warnings +tests\Dev10_689595_back_inserter_vector_bool +tests\Dev10_709168_marking_iterators_as_checked +tests\Dev10_722102_shared_ptr_nullptr +tests\Dev10_729003_bind_reference_wrapper +tests\Dev10_766948_insert_ambiguity +tests\Dev10_780098_movable_elements +tests\Dev10_783436_rvalue_string_plus +tests\Dev10_809142_copy_n_istream_iterator +tests\Dev10_814245_regex_character_class_crash +tests\Dev10_816787_swap_vector_bool_elements +tests\Dev10_847656_shared_ptr_is_convertible +tests\Dev10_851347_weak_ptr_virtual_inheritance +tests\Dev10_860410_bitset_ctors +tests\Dev10_860421_deque_push_back_pop_front +tests\Dev10_881629_vector_erase_return_value +tests\Dev10_904413_moved_from_function_should_be_empty +tests\Dev10_905461_is_sorted_until +tests\Dev10_908702_string_memory_leak +tests\Dev10_909646_stringstream_vd2 +tests\Dev11_0000000_dual_range_algorithms +tests\Dev11_0000000_function_crashes +tests\Dev11_0000000_include_each_header_alone +tests\Dev11_0000000_null_forward_iterators +tests\Dev11_0000000_quoted +tests\Dev11_0000000_rotate_test +tests\Dev11_0000000_tuple_cat +tests\Dev11_0000000_user_defined_literals +tests\Dev11_0019127_singular_iterators +tests\Dev11_0091392_string_erase_resize_perf +tests\Dev11_0133625_locale0_implib_cpp +tests\Dev11_0135139_vector_bool_comparisons +tests\Dev11_0235721_async_and_packaged_task +tests\Dev11_0253803_debug_pointer +tests\Dev11_0272959_make_signed +tests\Dev11_0289403_partition_point_complexity +tests\Dev11_0299014_exception_ptr_requirements +tests\Dev11_0302476_pair_move +tests\Dev11_0314451_make_pair_make_tuple +tests\Dev11_0316853_find_memchr_optimization +tests\Dev11_0343056_pair_tuple_ctor_sfinae +tests\Dev11_0376122_grand_theft_bind +tests\Dev11_0377755_thread_ctor_move_only_types +tests\Dev11_0387701_container_equality +tests\Dev11_0417110_nullptr_t_is_scalar +tests\Dev11_0435439_call_once_deadlock +tests\Dev11_0437519_container_behavior +tests\Dev11_0437519_container_requirements +tests\Dev11_0447546_facet_allocation +tests\Dev11_0483851_vector_debug_allocator_use +tests\Dev11_0485243_condition_variable_crash +tests\Dev11_0493504_error_category_lifetime +tests\Dev11_0494593_time_put_wchar_t +tests\Dev11_0496153_locale_ctor +tests\Dev11_0532622_minmax_element +tests\Dev11_0535636_functional_overhaul +tests\Dev11_0555154_system_clock_to_time_t +tests\Dev11_0577418_random_seed_0 +tests\Dev11_0579795_inplace_merge_out_of_memory +tests\Dev11_0607540_pair_tuple_rvalue_references +tests\Dev11_0617384_empty_std_function +tests\Dev11_0653897_codecvt_partial +tests\Dev11_0671816_list_splice +tests\Dev11_0696045_future_wait_for +tests\Dev11_0704582_ratio +tests\Dev11_0732166_unordered_strong_guarantee +tests\Dev11_0748972_function_crash_out_of_memory +tests\Dev11_0823534_transparent_lookup +tests\Dev11_0835323_to_string +tests\Dev11_0836436_get_time +tests\Dev11_0845312_comprehensive_floating_point +tests\Dev11_0863628_atomic_compare_exchange +tests\Dev11_0920385_list_sort_allocator +tests\Dev11_1003120_search_test +tests\Dev11_1066589_shared_ptr_atomic_deadlock +tests\Dev11_1066931_filesystem_rename_noop +tests\Dev11_1074023_constexpr +tests\Dev11_1086953_call_once_overhaul +tests\Dev11_1114006_condition_variable_pred +tests\Dev11_1127004_future_has_exceptions_0 +tests\Dev11_1131212_uncaught_exceptions +tests\Dev11_1137366_nested_exception +tests\Dev11_1140665_unique_ptr_array_conversions +tests\Dev11_1150223_shared_mutex +tests\Dev11_1158803_regex_thread_safety +tests\Dev11_1180290_filesystem_error_code +tests\GH_000073_regex_multiline_escape_hatch +tests\GH_000140_adl_proof_comparison +tests\GH_000140_adl_proof_construction +tests\GH_000140_adl_proof_views +tests\GH_000177_forbidden_aliasing +tests\GH_000178_uniform_int +tests\GH_000342_filebuf_close +tests\GH_000431_copy_move_family +tests\GH_000431_equal_family +tests\GH_000431_equal_memcmp_is_safe +tests\GH_000431_iter_copy_move_cat +tests\GH_000431_lex_compare_family +tests\GH_000431_lex_compare_memcmp_classify +tests\GH_000442_random_subtract_with_carry_engine_io +tests\GH_000457_system_error_message +tests\GH_000519_cmath_overloads +tests\GH_000527_remove_allocator_void +tests\GH_000545_include_compare +tests\GH_000625_vector_bool_optimization +tests\GH_000685_condition_variable_any +tests\GH_000690_overaligned_function +tests\GH_000732_hash_reserve +tests\GH_000856_nth_element_linear +tests\GH_000890_pow_template +tests\GH_000935_complex_numerical_accuracy +tests\GH_000940_missing_valarray_copy +tests\GH_000952_bind_constraints +tests\GH_000990_any_link_without_exceptions +tests\GH_000995_regex_custom_char_types +tests\GH_001001_random_rejection_rounding +tests\GH_001010_filesystem_error_encoding +tests\GH_001017_discrete_distribution_out_of_range +tests\GH_001059_hyperbolic_truncation +tests\GH_001086_partial_sort_copy +tests\GH_001103_countl_zero_correctness +tests\GH_001105_custom_streambuf_throws +tests\GH_001123_random_cast_out_of_range +tests\GH_001277_num_get_bad_grouping +tests\GH_001394_msvc_no_unique_address_23 +tests\GH_001411_core_headers +tests\GH_001530_binomial_accuracy +tests\GH_001541_case_sensitive_boolalpha +tests\GH_001596_adl_proof_algorithms +tests\GH_001638_dllexport_derived_classes +tests\GH_001850_clog_tied_to_cout +tests\GH_001858_iostream_exception +tests\GH_001912_random_distribution_operator_const +tests\GH_001914_cached_position +tests\GH_001923_filesystem_long_path_support +tests\GH_002030_asan_annotate_string +tests\GH_002030_asan_annotate_vector +tests\GH_002039_byte_is_not_trivially_swappable +tests\GH_002045_put_time_changes_errno +tests\GH_002058_debug_iterator_race +tests\GH_002120_streambuf_seekpos_and_seekoff +tests\GH_002168_regex_overflow +tests\GH_002206_unreserved_names +tests\GH_002299_implicit_sfinae_constraints +tests\GH_002307_usual_scope_guard +tests\GH_002334_branchless_clamp +tests\GH_002431_byte_range_find_with_unreachable_sentinel +tests\GH_002488_promise_not_default_constructible_types +tests\GH_002558_format_presetPadding +tests\GH_002581_common_reference_workaround +tests\GH_002620_construct_at_workaround +tests\GH_002655_alternate_name_broke_linker +tests\GH_002711_Zc_alignedNew- +tests\GH_002760_syncstream_memory_leak +tests\GH_002769_handle_deque_block_pointers +tests\GH_002789_Hash_vec_Tidy +tests\GH_002885_stable_sort_difference_type +tests\GH_002989_nothrow_unwrappable +tests\GH_002992_unwrappable_iter_sent_pairs +tests\GH_003003_format_decimal_point +tests\GH_003022_substr_allocator +tests\GH_003105_piecewise_densities +tests\GH_003119_error_category_ctor +tests\GH_003246_cmath_narrowing +tests\GH_003570_allocate_at_least +tests\GH_003617_vectorized_meow_element +tests\GH_003663_cast_contiguous_iterator_difference_type +tests\GH_003676_format_large_hh_mm_ss_values +tests\GH_003735_char_traits_signatures +tests\GH_003840_tellg_when_reading_lf_file_in_text_mode +tests\GH_003867_output_nan +tests\GH_004023_mdspan_fwd_prod_overflow +tests\GH_004040_container_nonmember_functions +tests\GH_004108_some_ranges_algos_construct_wrong_type +tests\GH_004109_iter_value_t_direct_initialization +tests\GH_004129_conversion_in_new_numeric_algorithms +tests\GH_004201_chrono_formatter +tests\GH_004275_seeking_fancy_iterators +tests\GH_004388_unordered_meow_operator_equal +tests\GH_004477_mdspan_warning_5246 +tests\GH_004597_self_swap +tests\GH_004609_heterogeneous_cmp_overloads +tests\GH_004618_mixed_operator_usage_keeps_statistical_properties +tests\GH_004618_normal_distribution_avoids_resets +tests\GH_004657_expected_constraints_permissive +tests\GH_004686_vectorization_on_trivial_assignability +tests\GH_004845_logical_operator_traits_with_non_bool_constant +tests\GH_004929_internal_tag_constructors +tests\GH_004930_char_traits_user_specialization +tests\GH_005090_stl_hardening +tests\GH_005090_stl_hardening_cxx20_iterators +tests\GH_005204_regex_collating_ranges +tests\GH_005236_collate_facet +tests\GH_005244_regex_escape_sequences +tests\GH_005276_system_error_heap_use_after_free +tests\GH_005315_destructor_tombstones +tests\GH_005402_string_with_volatile_range +tests\GH_005421_vector_algorithms_integer_class_type_iterator +tests\GH_005472_do_not_overlap +tests\GH_005504_avoid_function_call_wrapping +tests\GH_005546_containers_size_type_cast +tests\GH_005553_regex_character_translation +tests\GH_005768_pow_accuracy +tests\GH_005800_stable_sort_large_alignment +tests\GH_005816_numeric_limits_traps +tests\GH_005968_headers_provide_begin_end +tests\LWG2381_num_get_floating_point +tests\LWG2510_tag_classes +tests\LWG2597_complex_branch_cut +tests\LWG3018_shared_ptr_function +tests\LWG3121_constrained_tuple_forwarding_ctor +tests\LWG3146_excessive_unwrapping_ref_cref +tests\LWG3234_math_special_overloads +tests\LWG3422_seed_seq_ctors +tests\LWG3480_directory_iterator_range +tests\LWG3528_make_from_tuple_impl +tests\LWG3545_pointer_traits_sfinae +tests\LWG3561_discard_block_engine_counter +tests\LWG3610_iota_view_size_and_integer_class +tests\LWG4084_iostream_uppercase_inf_nan +tests\LWG4105_ranges_ends_with_and_integer_class +tests\LWG4172_unique_lock_self_move_assignment +tests\P0009R18_mdspan_default_accessor +tests\P0009R18_mdspan_extents +tests\P0009R18_mdspan_extents_death +tests\P0009R18_mdspan_layout_left +tests\P0009R18_mdspan_layout_left_death +tests\P0009R18_mdspan_layout_right +tests\P0009R18_mdspan_layout_right_death +tests\P0009R18_mdspan_layout_stride +tests\P0009R18_mdspan_layout_stride_death +tests\P0009R18_mdspan_mdspan +tests\P0009R18_mdspan_mdspan_death +tests\P0009R18_mdspan_msabi +tests\P0019R8_atomic_ref +tests\P0024R2_parallel_algorithms_adjacent_difference +tests\P0024R2_parallel_algorithms_adjacent_find +tests\P0024R2_parallel_algorithms_all_of +tests\P0024R2_parallel_algorithms_count +tests\P0024R2_parallel_algorithms_equal +tests\P0024R2_parallel_algorithms_exclusive_scan +tests\P0024R2_parallel_algorithms_find +tests\P0024R2_parallel_algorithms_find_end +tests\P0024R2_parallel_algorithms_find_first_of +tests\P0024R2_parallel_algorithms_for_each +tests\P0024R2_parallel_algorithms_inclusive_scan +tests\P0024R2_parallel_algorithms_is_heap +tests\P0024R2_parallel_algorithms_is_partitioned +tests\P0024R2_parallel_algorithms_is_sorted +tests\P0024R2_parallel_algorithms_mismatch +tests\P0024R2_parallel_algorithms_partition +tests\P0024R2_parallel_algorithms_reduce +tests\P0024R2_parallel_algorithms_remove +tests\P0024R2_parallel_algorithms_replace +tests\P0024R2_parallel_algorithms_search +tests\P0024R2_parallel_algorithms_search_n +tests\P0024R2_parallel_algorithms_set_difference +tests\P0024R2_parallel_algorithms_set_intersection +tests\P0024R2_parallel_algorithms_sort +tests\P0024R2_parallel_algorithms_stable_sort +tests\P0024R2_parallel_algorithms_transform +tests\P0024R2_parallel_algorithms_transform_exclusive_scan +tests\P0024R2_parallel_algorithms_transform_inclusive_scan +tests\P0024R2_parallel_algorithms_transform_reduce +tests\P0035R4_over_aligned_allocation +tests\P0040R3_extending_memory_management_tools +tests\P0040R3_parallel_memory_algorithms +tests\P0053R7_cpp_synchronized_buffered_ostream +tests\P0067R5_charconv +tests\P0083R3_splicing_maps_and_sets +tests\P0088R3_variant +tests\P0088R3_variant_msvc +tests\P0092R1_polishing_chrono +tests\P0122R7_span +tests\P0122R7_span_death +tests\P0137R1_launder +tests\P0156R2_scoped_lock +tests\P0202R3_constexpr_algorithm_and_exchange +tests\P0218R1_filesystem +tests\P0220R1_any +tests\P0220R1_optional +tests\P0220R1_optional_death +tests\P0220R1_polymorphic_memory_resources +tests\P0220R1_sample +tests\P0220R1_searchers +tests\P0220R1_string_view +tests\P0226R1_math_special_functions +tests\P0288R9_move_only_function +tests\P0295R0_gcd_lcm +tests\P0323R12_expected +tests\P0325R4_to_array +tests\P0339R6_polymorphic_allocator +tests\P0355R7_calendars_and_time_zones_clocks +tests\P0355R7_calendars_and_time_zones_dates +tests\P0355R7_calendars_and_time_zones_dates_literals +tests\P0355R7_calendars_and_time_zones_formatting +tests\P0355R7_calendars_and_time_zones_hms +tests\P0355R7_calendars_and_time_zones_io +tests\P0355R7_calendars_and_time_zones_time_point_and_durations +tests\P0355R7_calendars_and_time_zones_time_zones +tests\P0355R7_calendars_and_time_zones_zoned_time +tests\P0356R5_bind_front +tests\P0357R3_supporting_incomplete_types_in_reference_wrapper +tests\P0401R6_allocate_at_least +tests\P0408R7_efficient_access_to_stringbuf_buffer +tests\P0414R2_shared_ptr_for_arrays +tests\P0415R1_constexpr_complex +tests\P0426R1_constexpr_char_traits +tests\P0433R2_deduction_guides +tests\P0448R4_iosfwd +tests\P0448R4_spanstream +tests\P0466R5_layout_compatibility_and_pointer_interconvertibility_traits +tests\P0475R1_P0591R4_uses_allocator_construction +tests\P0476R2_bit_cast +tests\P0487R1_fixing_operator_shl_basic_istream_char_pointer +tests\P0513R0_poisoning_the_hash +tests\P0528R3_cmpxchg_pad +tests\P0553R4_bit_rotating_and_counting_functions +tests\P0556R3_bit_integral_power_of_two_operations +tests\P0586R2_integer_comparison +tests\P0595R2_is_constant_evaluated +tests\P0607R0_inline_variables +tests\P0608R3_improved_variant_converting_constructor +tests\P0616R0_using_move_in_numeric +tests\P0627R6_unreachable +tests\P0631R8_numbers_math_constants +tests\P0645R10_text_formatting_args +tests\P0645R10_text_formatting_custom_formatting +tests\P0645R10_text_formatting_death +tests\P0645R10_text_formatting_formatting +tests\P0645R10_text_formatting_grapheme_clusterization +tests\P0645R10_text_formatting_legacy_text_encoding +tests\P0645R10_text_formatting_parse_contexts +tests\P0645R10_text_formatting_parsing +tests\P0645R10_text_formatting_utf8 +tests\P0660R10_jthread_and_cv_any +tests\P0660R10_stop_token +tests\P0660R10_stop_token_death +tests\P0674R1_make_shared_for_arrays +tests\P0718R2_atomic_smart_ptrs +tests\P0753R2_manipulators_for_cpp_synchronized_buffered_ostream +tests\P0758R1_is_nothrow_convertible +tests\P0768R1_spaceship_cpos +tests\P0768R1_spaceship_operator +tests\P0769R2_shift_left_shift_right +tests\P0784R7_library_machinery +tests\P0784R7_library_support_for_more_constexpr_containers +tests\P0798R8_monadic_operations_for_std_optional +tests\P0811R3_midpoint_lerp +tests\P0881R7_stacktrace +tests\P0896R4_and_P1614R2_comparisons +tests\P0896R4_common_iterator +tests\P0896R4_common_iterator_death +tests\P0896R4_counted_iterator +tests\P0896R4_counted_iterator_death +tests\P0896R4_istream_view +tests\P0896R4_istream_view_death +tests\P0896R4_ranges_alg_adjacent_find +tests\P0896R4_ranges_alg_all_of +tests\P0896R4_ranges_alg_any_of +tests\P0896R4_ranges_alg_binary_search +tests\P0896R4_ranges_alg_copy +tests\P0896R4_ranges_alg_copy_backward +tests\P0896R4_ranges_alg_copy_if +tests\P0896R4_ranges_alg_copy_n +tests\P0896R4_ranges_alg_count +tests\P0896R4_ranges_alg_count_if +tests\P0896R4_ranges_alg_equal +tests\P0896R4_ranges_alg_fill +tests\P0896R4_ranges_alg_fill_n +tests\P0896R4_ranges_alg_find +tests\P0896R4_ranges_alg_find_end +tests\P0896R4_ranges_alg_find_first_of +tests\P0896R4_ranges_alg_find_if +tests\P0896R4_ranges_alg_find_if_not +tests\P0896R4_ranges_alg_for_each +tests\P0896R4_ranges_alg_for_each_n +tests\P0896R4_ranges_alg_generate +tests\P0896R4_ranges_alg_generate_n +tests\P0896R4_ranges_alg_heap +tests\P0896R4_ranges_alg_includes +tests\P0896R4_ranges_alg_inplace_merge +tests\P0896R4_ranges_alg_is_permutation +tests\P0896R4_ranges_alg_is_sorted +tests\P0896R4_ranges_alg_lexicographical_compare +tests\P0896R4_ranges_alg_merge +tests\P0896R4_ranges_alg_minmax +tests\P0896R4_ranges_alg_mismatch +tests\P0896R4_ranges_alg_move +tests\P0896R4_ranges_alg_move_backward +tests\P0896R4_ranges_alg_none_of +tests\P0896R4_ranges_alg_nth_element +tests\P0896R4_ranges_alg_partial_sort +tests\P0896R4_ranges_alg_partial_sort_copy +tests\P0896R4_ranges_alg_partition +tests\P0896R4_ranges_alg_partition_copy +tests\P0896R4_ranges_alg_partition_point +tests\P0896R4_ranges_alg_permutations +tests\P0896R4_ranges_alg_remove +tests\P0896R4_ranges_alg_remove_copy +tests\P0896R4_ranges_alg_remove_copy_if +tests\P0896R4_ranges_alg_remove_if +tests\P0896R4_ranges_alg_replace +tests\P0896R4_ranges_alg_replace_copy +tests\P0896R4_ranges_alg_replace_copy_if +tests\P0896R4_ranges_alg_replace_if +tests\P0896R4_ranges_alg_reverse +tests\P0896R4_ranges_alg_reverse_copy +tests\P0896R4_ranges_alg_rotate +tests\P0896R4_ranges_alg_rotate_copy +tests\P0896R4_ranges_alg_sample +tests\P0896R4_ranges_alg_search +tests\P0896R4_ranges_alg_search_n +tests\P0896R4_ranges_alg_set_difference +tests\P0896R4_ranges_alg_set_intersection +tests\P0896R4_ranges_alg_set_symmetric_difference +tests\P0896R4_ranges_alg_set_union +tests\P0896R4_ranges_alg_shuffle +tests\P0896R4_ranges_alg_sort +tests\P0896R4_ranges_alg_stable_partition +tests\P0896R4_ranges_alg_stable_sort +tests\P0896R4_ranges_alg_swap_ranges +tests\P0896R4_ranges_alg_transform_binary +tests\P0896R4_ranges_alg_transform_unary +tests\P0896R4_ranges_alg_uninitialized_copy +tests\P0896R4_ranges_alg_uninitialized_copy_n +tests\P0896R4_ranges_alg_uninitialized_default_construct +tests\P0896R4_ranges_alg_uninitialized_default_construct_n +tests\P0896R4_ranges_alg_uninitialized_fill +tests\P0896R4_ranges_alg_uninitialized_fill_n +tests\P0896R4_ranges_alg_uninitialized_move +tests\P0896R4_ranges_alg_uninitialized_move_n +tests\P0896R4_ranges_alg_uninitialized_value_construct +tests\P0896R4_ranges_alg_uninitialized_value_construct_n +tests\P0896R4_ranges_alg_unique +tests\P0896R4_ranges_alg_unique_copy +tests\P0896R4_ranges_algorithm_machinery +tests\P0896R4_ranges_iterator_machinery +tests\P0896R4_ranges_range_machinery +tests\P0896R4_ranges_ref_view +tests\P0896R4_ranges_subrange +tests\P0896R4_ranges_test_machinery +tests\P0896R4_ranges_to_address +tests\P0896R4_stream_iterators +tests\P0896R4_views_all +tests\P0896R4_views_common +tests\P0896R4_views_counted +tests\P0896R4_views_counted_death +tests\P0896R4_views_drop +tests\P0896R4_views_drop_death +tests\P0896R4_views_drop_while +tests\P0896R4_views_drop_while_death +tests\P0896R4_views_elements +tests\P0896R4_views_empty +tests\P0896R4_views_filter +tests\P0896R4_views_filter_death +tests\P0896R4_views_filter_iterator +tests\P0896R4_views_iota +tests\P0896R4_views_iota_death +tests\P0896R4_views_join +tests\P0896R4_views_lazy_split +tests\P0896R4_views_reverse +tests\P0896R4_views_single +tests\P0896R4_views_split +tests\P0896R4_views_take +tests\P0896R4_views_take_death +tests\P0896R4_views_take_while +tests\P0896R4_views_take_while_death +tests\P0896R4_views_transform +tests\P0896R4_views_transform_death +tests\P0898R3_concepts +tests\P0898R3_identity +tests\P0912R5_coroutine +tests\P0919R3_heterogeneous_unordered_lookup +tests\P0943R6_stdatomic_h +tests\P0952R2_new_generate_canonical +tests\P0966R1_string_reserve_should_not_shrink +tests\P0980R1_constexpr_strings +tests\P1004R2_constexpr_vector +tests\P1004R2_constexpr_vector_bool +tests\P1007R3_assume_aligned +tests\P1020R1_smart_pointer_for_overwrite +tests\P1023R0_constexpr_for_array_comparisons +tests\P1032R1_miscellaneous_constexpr +tests\P1132R7_out_ptr +tests\P1135R6_atomic_flag_test +tests\P1135R6_atomic_wait +tests\P1135R6_barrier +tests\P1135R6_latch +tests\P1135R6_semaphore +tests\P1147R1_printing_volatile_pointers +tests\P1165R1_consistently_propagating_stateful_allocators +tests\P1169R4_static_call_operator +tests\P1206R7_deque_append_range +tests\P1206R7_deque_assign_range +tests\P1206R7_deque_from_range +tests\P1206R7_deque_insert_range +tests\P1206R7_deque_prepend_range +tests\P1206R7_forward_list_assign_range +tests\P1206R7_forward_list_from_range +tests\P1206R7_forward_list_insert_range_after +tests\P1206R7_forward_list_prepend_range +tests\P1206R7_from_range +tests\P1206R7_list_append_range +tests\P1206R7_list_assign_range +tests\P1206R7_list_from_range +tests\P1206R7_list_insert_range +tests\P1206R7_list_prepend_range +tests\P1206R7_map_from_range +tests\P1206R7_map_insert_range +tests\P1206R7_multimap_from_range +tests\P1206R7_multimap_insert_range +tests\P1206R7_multiset_from_range +tests\P1206R7_multiset_insert_range +tests\P1206R7_priority_queue_from_range +tests\P1206R7_priority_queue_push_range +tests\P1206R7_queue_from_range +tests\P1206R7_queue_push_range +tests\P1206R7_ranges_to_mappish +tests\P1206R7_ranges_to_misc +tests\P1206R7_ranges_to_sequence +tests\P1206R7_ranges_to_settish +tests\P1206R7_set_from_range +tests\P1206R7_set_insert_range +tests\P1206R7_stack_from_range +tests\P1206R7_stack_push_range +tests\P1206R7_string_append_range +tests\P1206R7_string_assign_range +tests\P1206R7_string_from_range +tests\P1206R7_string_insert_range +tests\P1206R7_string_replace_with_range +tests\P1206R7_unordered_map_from_range +tests\P1206R7_unordered_map_insert_range +tests\P1206R7_unordered_multimap_from_range +tests\P1206R7_unordered_multimap_insert_range +tests\P1206R7_unordered_multiset_from_range +tests\P1206R7_unordered_multiset_insert_range +tests\P1206R7_unordered_set_from_range +tests\P1206R7_unordered_set_insert_range +tests\P1206R7_vector_append_range +tests\P1206R7_vector_assign_range +tests\P1206R7_vector_from_range +tests\P1206R7_vector_insert_range +tests\P1208R6_source_location +tests\P1209R0_erase_if_erase +tests\P1223R5_ranges_alg_find_last +tests\P1223R5_ranges_alg_find_last_if +tests\P1223R5_ranges_alg_find_last_if_not +tests\P1272R4_byteswap +tests\P1423R3_char8_t_remediation +tests\P1425R4_queue_stack_constructors +tests\P1502R1_standard_library_header_units +tests\P1518R2_stop_overconstraining_allocators +tests\P1522R1_difference_type +tests\P1614R2_spaceship +tests\P1645R1_constexpr_numeric +tests\P1659R3_ranges_alg_ends_with +tests\P1659R3_ranges_alg_starts_with +tests\P1682R3_to_underlying +tests\P1899R3_views_stride +tests\P1899R3_views_stride_death +tests\P1951R1_default_arguments_pair_forward_ctor +tests\P2093R14_formatted_output +tests\P2136R3_invoke_r +tests\P2162R2_std_visit_for_derived_classes_from_variant +tests\P2164R9_views_enumerate +tests\P2165R4_tuple_like_common_reference +tests\P2165R4_tuple_like_common_type +tests\P2165R4_tuple_like_operations +tests\P2165R4_tuple_like_pair +tests\P2165R4_tuple_like_relational_operators +tests\P2165R4_tuple_like_tuple_members +tests\P2231R1_complete_constexpr_optional_variant +tests\P2255R2_invocation +tests\P2255R2_reference_constructs_from_temporary +tests\P2255R2_reference_converts_from_temporary +tests\P2255R2_tuple_pair_construction +tests\P2273R3_constexpr_unique_ptr +tests\P2278R4_basic_const_iterator +tests\P2278R4_const_span +tests\P2278R4_ranges_const_iterator_machinery +tests\P2278R4_ranges_const_range_machinery +tests\P2278R4_views_as_const +tests\P2286R8_text_formatting_container_adaptors +tests\P2286R8_text_formatting_debug_enabled_specializations +tests\P2286R8_text_formatting_escaping +tests\P2286R8_text_formatting_escaping_legacy_text_encoding +tests\P2286R8_text_formatting_escaping_utf8 +tests\P2286R8_text_formatting_formattable +tests\P2286R8_text_formatting_header_queue +tests\P2286R8_text_formatting_header_stack +tests\P2286R8_text_formatting_header_vector +tests\P2286R8_text_formatting_range_formatter +tests\P2286R8_text_formatting_range_map +tests\P2286R8_text_formatting_range_sequence +tests\P2286R8_text_formatting_range_set +tests\P2286R8_text_formatting_range_string +tests\P2286R8_text_formatting_range_string_death +tests\P2286R8_text_formatting_tuple +tests\P2286R8_text_formatting_tuple_disambiguation +tests\P2286R8_text_formatting_vector_bool_reference +tests\P2302R4_ranges_alg_contains +tests\P2302R4_ranges_alg_contains_subrange +tests\P2321R2_proxy_reference +tests\P2321R2_views_adjacent +tests\P2321R2_views_adjacent_transform +tests\P2321R2_views_zip +tests\P2321R2_views_zip_transform +tests\P2322R6_ranges_alg_fold +tests\P2374R4_checked_arithmetic_operations +tests\P2374R4_views_cartesian_product +tests\P2374R4_views_cartesian_product_death +tests\P2374R4_views_cartesian_product_recommended_practices +tests\P2387R3_bind_back +tests\P2387R3_pipe_support_for_user_defined_range_adaptors +tests\P2401R0_conditional_noexcept_for_exchange +tests\P2404R3_move_only_types_for_comparison_concepts +tests\P2408R5_ranges_iterators_to_classic_algorithms +tests\P2415R2_owning_view +tests\P2417R2_constexpr_bitset +tests\P2438R2_substr_rvalue +tests\P2440R1_ranges_alg_shift_left +tests\P2440R1_ranges_alg_shift_right +tests\P2440R1_ranges_numeric_iota +tests\P2441R2_views_join_with +tests\P2442R1_signed128_div_ceil +tests\P2442R1_views_chunk +tests\P2442R1_views_chunk_death +tests\P2442R1_views_slide +tests\P2442R1_views_slide_death +tests\P2443R1_views_chunk_by +tests\P2443R1_views_chunk_by_death +tests\P2445R1_forward_like +tests\P2446R2_views_as_rvalue +tests\P2465R3_standard_library_modules +tests\P2467R1_exclusive_mode_fstreams +tests\P2474R2_views_repeat +tests\P2474R2_views_repeat_death +tests\P2494R2_move_only_range_adaptors +tests\P2502R2_generator +tests\P2502R2_generator_death +tests\P2502R2_generator_iterator +tests\P2502R2_generator_promise +tests\P2505R5_monadic_functions_for_std_expected +tests\P2510R3_text_formatting_pointers +tests\P2517R1_apply_conditional_noexcept +tests\P2538R1_adl_proof_std_projected +tests\P2609R3_relaxing_ranges_just_a_smidge +tests\P2674R1_is_implicit_lifetime +tests\P2693R1_ostream_and_thread_id +tests\P2693R1_text_formatting_header_stacktrace +tests\P2693R1_text_formatting_header_thread +tests\P2693R1_text_formatting_stacktrace +tests\P2693R1_text_formatting_thread_id +tests\P3016R6_inconsistent_begin_end +tests\P3107R5_enabled_specializations +tests\P3349R1_contiguous_iterators_to_pointers +tests\P3503R3_packaged_task_promise_with_allocator +tests\VSO_0000000_allocator_propagation +tests\VSO_0000000_any_calling_conventions +tests\VSO_0000000_c_math_functions +tests\VSO_0000000_condition_variable_any_exceptions +tests\VSO_0000000_container_allocator_constructors +tests\VSO_0000000_exception_ptr_rethrow_seh +tests\VSO_0000000_fancy_pointers +tests\VSO_0000000_has_static_rtti +tests\VSO_0000000_initialize_everything +tests\VSO_0000000_instantiate_algorithms_16_difference_type_1 +tests\VSO_0000000_instantiate_algorithms_16_difference_type_2 +tests\VSO_0000000_instantiate_algorithms_32_difference_type_1 +tests\VSO_0000000_instantiate_algorithms_32_difference_type_2 +tests\VSO_0000000_instantiate_algorithms_64_difference_type_1 +tests\VSO_0000000_instantiate_algorithms_64_difference_type_2 +tests\VSO_0000000_instantiate_algorithms_int_1 +tests\VSO_0000000_instantiate_algorithms_int_2 +tests\VSO_0000000_instantiate_algorithms_nontrivial_1 +tests\VSO_0000000_instantiate_algorithms_nontrivial_2 +tests\VSO_0000000_instantiate_containers +tests\VSO_0000000_instantiate_iterators_misc +tests\VSO_0000000_instantiate_type_traits +tests\VSO_0000000_list_iterator_debugging +tests\VSO_0000000_list_unique_self_reference +tests\VSO_0000000_matching_npos_address +tests\VSO_0000000_more_pair_tuple_sfinae +tests\VSO_0000000_nullptr_stream_out +tests\VSO_0000000_path_stream_parameter +tests\VSO_0000000_regex_interface +tests\VSO_0000000_regex_use +tests\VSO_0000000_string_view_idl +tests\VSO_0000000_type_traits +tests\VSO_0000000_vector_algorithms +tests\VSO_0000000_vector_algorithms_floats +tests\VSO_0000000_vector_algorithms_mismatch_and_lex_compare +tests\VSO_0000000_vector_algorithms_search_n +tests\VSO_0000000_wcfb01_idempotent_container_destructors +tests\VSO_0000000_wchar_t_filebuf_xsmeown +tests\VSO_0095468_clr_exception_ptr_bad_alloc +tests\VSO_0095837_current_exception_dtor +tests\VSO_0099869_pow_float_overflow +tests\VSO_0102478_moving_allocators +tests\VSO_0104705_throwing_copy_in_current_exception +tests\VSO_0104705_throwing_copy_in_current_exception_seh +tests\VSO_0105317_expression_sfinae +tests\VSO_0118461_min_max_noexcept +tests\VSO_0121275_filesystem_canonical_should_handle_many_double_dots +tests\VSO_0121440_is_iterator_iterator_traits +tests\VSO_0131167_associative_emplacement_allocations +tests\VSO_0135428_custom_char_traits_string +tests\VSO_0144114_sleep_until +tests\VSO_0144294_unordered_map_max_bucket_count +tests\VSO_0149983_system_error_broken_pipe +tests\VSO_0157762_feature_test_macros +tests\VSO_0174871_string_replace +tests\VSO_0180466_algorithm_overhauls +tests\VSO_0180469_fill_family +tests\VSO_0191296_allocator_construct +tests\VSO_0204655_heap_algorithms_integer_overflow +tests\VSO_0224478_scoped_allocator +tests\VSO_0226079_mutex +tests\VSO_0234888_num_get_overflows +tests\VSO_0397980_codecvt_length +tests\VSO_0429900_fast_debug_range_based_for +tests\VSO_0474901_shift_jis_codecvt +tests\VSO_0493909_is_aggregate +tests\VSO_0512710_terminate_current_exception_from_noexcept_function +tests\VSO_0512710_terminate_current_exception_from_noexcept_function_2 +tests\VSO_0512710_terminate_current_exception_from_unwind +tests\VSO_0527559_pragma_managed +tests\VSO_0575109_string_ambiguous_overloads +tests\VSO_0599804_seekg_zero +tests\VSO_0644691_utf_8_codecvt +tests\VSO_0663136_string_includes_cctype +tests\VSO_0664587_lcg_divide_by_zero +tests\VSO_0677157_flist_merge_edge_cases +tests\VSO_0735700_fstream_read_over_4k +tests\VSO_0736657_unordered_assign_rehash +tests\VSO_0744055_atomic_load_8_bytes_readonly +tests\VSO_0792651_unordered_set_rehash_invalidates_key +tests\VSO_0830211_container_debugging_range_checks +tests\VSO_0849827_multicontainer_emplace_hint_position +tests\VSO_0938757_attribute_order +tests\VSO_0961751_hash_range_erase +tests\VSO_0971246_legacy_await_headers +tests\VSO_1775715_user_defined_modules +tests\VSO_1804139_static_analysis_warning_with_single_element_array +tests\VSO_1925201_iter_traits +tests\VSO_2252142_wrong_C5046 +tests\VSO_2318081_bogus_const_overloading