From 6202bf33a46aafcff1923dedd9b009306388f741 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Mon, 19 Aug 2024 12:14:05 -0700 Subject: [PATCH 01/10] Pretty clang-format find/version check messages Let's make these more consistent with the messages for `find_package(Python)` and the assembler. Showing the path may help folks with problems. --- tools/format/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/format/CMakeLists.txt b/tools/format/CMakeLists.txt index 08ba8066afb..8bc88ffb453 100644 --- a/tools/format/CMakeLists.txt +++ b/tools/format/CMakeLists.txt @@ -20,11 +20,11 @@ execute_process( if(clang_format_version MATCHES "clang-format version ([0-9]+\.[0-9]+\.[0-9]+)") set(expected_version "17.0.3") if(CMAKE_MATCH_1 VERSION_LESS expected_version) - message(FATAL_ERROR "Found clang-format ${CMAKE_MATCH_1}, older than expected ${expected_version}.") + message(FATAL_ERROR "Found clang-format: ${CLANG_FORMAT} (\"${CMAKE_MATCH_1}\", older than expected version \"${expected_version}\")") elseif(CMAKE_MATCH_1 VERSION_EQUAL expected_version) - message(STATUS "Found clang-format ${CMAKE_MATCH_1}.") + message(STATUS "Found clang-format: ${CLANG_FORMAT} (found expected version \"${CMAKE_MATCH_1}\")") elseif(CMAKE_MATCH_1 VERSION_GREATER expected_version) - message(WARNING "Found clang-format ${CMAKE_MATCH_1}, newer than expected ${expected_version}.") + message(WARNING "Found clang-format: ${CLANG_FORMAT} (\"${CMAKE_MATCH_1}\", newer than expected version \"${expected_version}\")") endif() else() message(FATAL_ERROR "Unexpected `clang-format --version` output: '${clang_format_version}'") From a02e1b332ad5dccebb5d794d91a7351249d72380 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Mon, 26 Aug 2024 09:31:40 -0700 Subject: [PATCH 02/10] Remove extraneous `element_type` from `ContiguousIterator` While we're here, let's use `value_type` and `difference_type` where appropriate so we can see which `int` is which. --- .../test.compile.pass.cpp | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/tests/std/tests/GH_003663_cast_contiguous_iterator_difference_type/test.compile.pass.cpp b/tests/std/tests/GH_003663_cast_contiguous_iterator_difference_type/test.compile.pass.cpp index bc6547f0fe9..29f60abbacf 100644 --- a/tests/std/tests/GH_003663_cast_contiguous_iterator_difference_type/test.compile.pass.cpp +++ b/tests/std/tests/GH_003663_cast_contiguous_iterator_difference_type/test.compile.pass.cpp @@ -8,22 +8,22 @@ class ContiguousIterator { public: using value_type = int; using difference_type = int; - using element_type = int; using iterator_category = std::contiguous_iterator_tag; - int* operator->() const; - int& operator*() const; - int& operator[](int) const; + + value_type* operator->() const; + value_type& operator*() const; + value_type& operator[](difference_type) const; ContiguousIterator& operator++(); ContiguousIterator operator++(int); ContiguousIterator& operator--(); ContiguousIterator operator--(int); - ContiguousIterator& operator+=(int); - ContiguousIterator& operator-=(int); + ContiguousIterator& operator+=(difference_type); + ContiguousIterator& operator-=(difference_type); friend auto operator<=>(ContiguousIterator, ContiguousIterator) = default; - friend int operator-(ContiguousIterator, ContiguousIterator); - friend ContiguousIterator operator+(ContiguousIterator, int); - friend ContiguousIterator operator-(ContiguousIterator, int); - friend ContiguousIterator operator+(int, ContiguousIterator); + friend difference_type operator-(ContiguousIterator, ContiguousIterator); + friend ContiguousIterator operator+(ContiguousIterator, difference_type); + friend ContiguousIterator operator-(ContiguousIterator, difference_type); + friend ContiguousIterator operator+(difference_type, ContiguousIterator); }; static_assert(std::contiguous_iterator); From eaaef8a57da990890fe7438fd8c76f6bf535f7fd Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Mon, 26 Aug 2024 09:34:39 -0700 Subject: [PATCH 03/10] Remove unused include from `P2163R3_invoke_r` This test doesn't need `is_permissive.hpp` after #4914. --- tests/std/tests/P2136R3_invoke_r/test.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/std/tests/P2136R3_invoke_r/test.cpp b/tests/std/tests/P2136R3_invoke_r/test.cpp index c08da1afd35..4da180d46a0 100644 --- a/tests/std/tests/P2136R3_invoke_r/test.cpp +++ b/tests/std/tests/P2136R3_invoke_r/test.cpp @@ -6,8 +6,6 @@ #include #include -#include - using namespace std; constexpr int square(int n) { From 21835ddbb0e7629c52d14a8e8f935480b5953402 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Tue, 27 Aug 2024 10:03:58 -0700 Subject: [PATCH 04/10] Simplify `construct_at` constraint --- stl/inc/xutility | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/xutility b/stl/inc/xutility index cd5a0c206b9..6e2f863c9a8 100644 --- a/stl/inc/xutility +++ b/stl/inc/xutility @@ -435,8 +435,8 @@ struct _Get_rebind_alias<_Ty, _Other, void_t - requires requires(_Ty* _Location, _Types&&... _Args) { - ::new (static_cast(_Location)) _Ty(_STD forward<_Types>(_Args)...); // per LWG-3888 + requires requires(void* _VoidPtr, _Types&&... _Args) { + ::new (_VoidPtr) _Ty(_STD forward<_Types>(_Args)...); // per LWG-3888 } constexpr _Ty* construct_at(_Ty* const _Location, _Types&&... _Args) noexcept( noexcept(::new(static_cast(_Location)) _Ty(_STD forward<_Types>(_Args)...))) /* strengthened */ { From 6d88bb5ee8d264cbd11dee63239f0e55d051b668 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Tue, 27 Aug 2024 23:50:42 -0700 Subject: [PATCH 05/10] Investigate a couple of libc++ failures --- tests/libcxx/expected_results.txt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 849419c527e..0ba74661047 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -576,15 +576,17 @@ std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.c # This test is bogus according to the wording that was ultimately accepted for C++23. std/strings/basic.string/string.capacity/resize_and_overwrite.pass.cpp FAIL -# contiguous_iterator requires to_address() which calls operator->(), but this bogus test uses an iterator that lacks operator->(). +# libc++ speculatively implements the proposed resolution for LWG-4058. std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.compile.pass.cpp FAIL - -# Bogus test expects to_address() to SFINAE away for int. std/utilities/memory/pointer.conversion/to_address_without_pointer_traits.pass.cpp FAIL # We disagree about whether various chrono types should be optimized, and the test is clearly wrong about vector::reference. std/utilities/format/format.formatter/format.formatter.locking/enable_nonlocking_formatter_optimization.compile.pass.cpp FAIL +# `increasing_allocator` calls `std::allocator::deallocate` with the wrong size +std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp FAIL +std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp FAIL + # *** LIKELY STL BUGS *** # Not analyzed, likely STL bugs. Various assertions. @@ -1221,12 +1223,6 @@ std/time/time.zone/time.zone.zonedtime/time.zone.zonedtime.nonmembers/ostream.pa # Not analyzed. static_assert(testComplexity()) is failing. std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_complexity.pass.cpp FAIL -# Not analyzed. -# MSVC constexpr error: failure was caused by unexpected deallocation count -# Clang assertion: _CrtIsValidHeapPointer(block) -std/containers/sequences/vector.bool/shrink_to_fit.pass.cpp FAIL -std/containers/sequences/vector/vector.capacity/shrink_to_fit.pass.cpp FAIL - # Not analyzed. # MSVC truncation warnings. # Clang assertion: std::hermite(n, +inf) == inf From bc759a686cf185308fdddf0758f3c17582d5e0fe Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Mon, 9 Sep 2024 21:37:21 -0700 Subject: [PATCH 06/10] Add missing `#endif` comments in `P1206R7_ranges_to_` These were incorrectly removed by #4944. --- tests/std/tests/P1206R7_ranges_to_mappish/test.cpp | 2 +- tests/std/tests/P1206R7_ranges_to_misc/test.cpp | 8 ++++---- tests/std/tests/P1206R7_ranges_to_sequence/test.cpp | 2 +- tests/std/tests/P1206R7_ranges_to_settish/test.cpp | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/std/tests/P1206R7_ranges_to_mappish/test.cpp b/tests/std/tests/P1206R7_ranges_to_mappish/test.cpp index d57da733280..6fdf75de288 100644 --- a/tests/std/tests/P1206R7_ranges_to_mappish/test.cpp +++ b/tests/std/tests/P1206R7_ranges_to_mappish/test.cpp @@ -162,7 +162,7 @@ struct mappish_instantiator { assert(c6.get_allocator().state == 13); assert(ranges::is_permutation(c6, expected, any_pair_eq)); } -#endif +#endif // ^^^ no workaround ^^^ { std::same_as auto c7 = R{some_pairs} | ranges::to(Alloc{13}); assert(c7.get_allocator().state == 13); diff --git a/tests/std/tests/P1206R7_ranges_to_misc/test.cpp b/tests/std/tests/P1206R7_ranges_to_misc/test.cpp index 25df9eb68f0..956dbbdc99a 100644 --- a/tests/std/tests/P1206R7_ranges_to_misc/test.cpp +++ b/tests/std/tests/P1206R7_ranges_to_misc/test.cpp @@ -62,7 +62,7 @@ constexpr bool test_reservable() { assert(r.cap_ == ranges::size(some_ints)); assert(r.reserved_ == ranges::size(some_ints)); } -#endif +#endif // ^^^ no workaround ^^^ return true; } @@ -100,7 +100,7 @@ constexpr bool test_common_constructible() { assert(c1.last_ == ranges::end(some_ints)); assert(c1.args_ == 3); } -#endif +#endif // ^^^ no workaround ^^^ // Verify that more than one argument can be passed after the range: { @@ -116,7 +116,7 @@ constexpr bool test_common_constructible() { assert(c3.last_ == ranges::end(some_ints)); assert(c3.args_ == 4); } -#endif +#endif // ^^^ no workaround ^^^ return true; } @@ -315,7 +315,7 @@ constexpr void test_lwg4016_per_kind() { std::same_as auto vec = std::views::empty | ranges::to(std::size_t{42}, std::allocator{}); assert(ranges::equal(vec, std::views::repeat(0, 42))); } -#endif +#endif // ^^^ no workaround ^^^ { std::same_as auto vec = ranges::to(std::views::iota(0, 42), std::initializer_list{-3, -2, -1}); assert(ranges::equal(vec, std::views::iota(-3, 42))); diff --git a/tests/std/tests/P1206R7_ranges_to_sequence/test.cpp b/tests/std/tests/P1206R7_ranges_to_sequence/test.cpp index b4c3810aecd..acb190e9c01 100644 --- a/tests/std/tests/P1206R7_ranges_to_sequence/test.cpp +++ b/tests/std/tests/P1206R7_ranges_to_sequence/test.cpp @@ -151,7 +151,7 @@ struct sequence_instantiator { assert(c6.get_allocator().state == 13); assert(ranges::equal(c6, meow)); } -#endif +#endif // ^^^ no workaround ^^^ { std::same_as auto c7 = R{meow} | ranges::to(Alloc{13}); assert(c7.get_allocator().state == 13); diff --git a/tests/std/tests/P1206R7_ranges_to_settish/test.cpp b/tests/std/tests/P1206R7_ranges_to_settish/test.cpp index 678e2981bf3..71c733e486b 100644 --- a/tests/std/tests/P1206R7_ranges_to_settish/test.cpp +++ b/tests/std/tests/P1206R7_ranges_to_settish/test.cpp @@ -156,7 +156,7 @@ struct settish_instantiator { assert(c6.get_allocator().state == 13); assert(ranges::is_permutation(c6, expected)); } -#endif +#endif // ^^^ no workaround ^^^ { std::same_as auto c7 = R{some_ints} | ranges::to(Alloc{13}); assert(c7.get_allocator().state == 13); From fc5995ff73439bb958bc44eda0537ca489a40a5f Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Tue, 10 Sep 2024 08:25:00 -0700 Subject: [PATCH 07/10] Revert "Simplify `construct_at` constraint" This reverts commit 21835ddbb0e7629c52d14a8e8f935480b5953402. --- stl/inc/xutility | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/stl/inc/xutility b/stl/inc/xutility index 6e2f863c9a8..cd5a0c206b9 100644 --- a/stl/inc/xutility +++ b/stl/inc/xutility @@ -435,8 +435,8 @@ struct _Get_rebind_alias<_Ty, _Other, void_t - requires requires(void* _VoidPtr, _Types&&... _Args) { - ::new (_VoidPtr) _Ty(_STD forward<_Types>(_Args)...); // per LWG-3888 + requires requires(_Ty* _Location, _Types&&... _Args) { + ::new (static_cast(_Location)) _Ty(_STD forward<_Types>(_Args)...); // per LWG-3888 } constexpr _Ty* construct_at(_Ty* const _Location, _Types&&... _Args) noexcept( noexcept(::new(static_cast(_Location)) _Ty(_STD forward<_Types>(_Args)...))) /* strengthened */ { From 3686349c99646ce0d12ad203545eac20f5c863ba Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Wed, 28 Aug 2024 10:22:03 -0700 Subject: [PATCH 08/10] The cannonical spelling is "ASan" Change occurrences of "ASAN" in `expected_results.txt` to "ASan", except for the occurrence in an ALLCAPS heading. Drive-by: Change "XFAILs" to "XFAILS" in an ALLCAPS heading. --- tests/libcxx/expected_results.txt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 0ba74661047..7cd56d4b1c4 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -130,7 +130,7 @@ std/language.support/support.limits/support.limits.general/mdspan.version.compil std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp FAIL # Various bogosity (LLVM-D141004), warning C6011: Dereferencing NULL pointer -# Note: The :1 (ASAN) configuration doesn't run static analysis. +# Note: The :1 (ASan) configuration doesn't run static analysis. std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_const_lvalue_pair.pass.cpp:0 FAIL std/utilities/utility/mem.res/mem.poly.allocator.class/mem.poly.allocator.mem/construct_pair_values.pass.cpp:0 FAIL @@ -224,7 +224,7 @@ std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_strong.pa std/atomics/atomics.types.generic/atomics.types.float/compare_exchange_weak.pass.cpp:1 SKIPPED std/input.output/syncstream/osyncstream/thread/several_threads.pass.cpp:1 SKIPPED -# VSO-2164191 "[ASAN][STL] Interception breaks strtoll" +# VSO-2164191 "[ASan][STL] Interception breaks strtoll" std/strings/string.conversions/stoll.pass.cpp:1 FAIL @@ -285,7 +285,7 @@ std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp:0 FAIL std/utilities/meta/meta.unary/meta.unary.prop/is_constructible.pass.cpp:1 FAIL # VSO-1271673 "static analyzer doesn't know about short-circuiting" -# Note: The :1 (ASAN) configuration doesn't run static analysis. +# Note: The :1 (ASan) configuration doesn't run static analysis. std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp:0 FAIL std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp:0 FAIL @@ -315,7 +315,7 @@ std/algorithms/robust_re_difference_type.compile.pass.cpp:1 FAIL # DevCom-1638563 VSO-1457836: icky static analysis false positive # Resolved wontfix, need to report again. -# Note: The :1 (ASAN) configuration doesn't run static analysis. +# Note: The :1 (ASan) configuration doesn't run static analysis. std/language.support/support.coroutines/end.to.end/go.pass.cpp:0 FAIL # DevCom-1638496 VSO-1462745: C1XX doesn't properly reject int <=> unsigned @@ -468,7 +468,7 @@ std/input.output/syncstream/syncbuf/syncstream.syncbuf.members/emit.pass.cpp FAI # *** VCRUNTIME BUGS *** # DevCom-10373274 VSO-1824997 "vcruntime nothrow array operator new falls back on the wrong function" -# This passes for the :1 (ASAN) configuration, surprisingly. +# This passes for the :1 (ASan) configuration, surprisingly. std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp:0 FAIL std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.replace.indirect.pass.cpp:2 FAIL @@ -969,7 +969,7 @@ std/utilities/format/format.tuple/format.pass.cpp FAIL # Not analyzed. Static analysis thinks that array indexing is out of bounds because it can't prove otherwise. # warning C28020: The expression '_Param_(1)<1' is not true at this call. -# Note: The :1 (ASAN) configuration doesn't run static analysis. +# Note: The :1 (ASan) configuration doesn't run static analysis. std/containers/views/mdspan/extents/ctor_default.pass.cpp:0 FAIL std/containers/views/mdspan/extents/ctor_from_array.pass.cpp:0 FAIL std/containers/views/mdspan/extents/ctor_from_integral.pass.cpp:0 FAIL @@ -982,7 +982,7 @@ std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp:0 FAIL # Not analyzed. Apparent false positives from static analysis where it thinks `new (std::nothrow)` could return null, despite an assert(). # warning C28182: Dereferencing NULL pointer. -# Note: The :1 (ASAN) configuration doesn't run static analysis. +# Note: The :1 (ASan) configuration doesn't run static analysis. std/language.support/support.dynamic/new.delete/new.delete.array/new.size_align_nothrow.pass.cpp:0 FAIL std/language.support/support.dynamic/new.delete/new.delete.array/new.size_nothrow.pass.cpp:0 FAIL @@ -1235,7 +1235,7 @@ std/containers/views/views.span/span.cons/copy.pass.cpp FAIL std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_ctor.compile.pass.cpp FAIL -# *** XFAILs WHICH PASS *** +# *** XFAILS WHICH PASS *** # These tests contain `// XFAIL: msvc` comments, which accurately describe runtime failures for x86 and x64. # However, for ARM and ARM64, they successfully compile, then we don't run them. # Our test harness properly handles the ambiguity of whether a FAIL line in this file means "fails to compile" @@ -1246,7 +1246,7 @@ std/utilities/optional/optional.object/optional.object.ctor/gh_101960_internal_c # In the meantime, because this is platform-dependent and we don't have a way to express that in this file, # we need to mark these tests as SKIPPED. # Finally, note that only :0 (MSVC) and :2 (Clang) configurations are mentioned here, -# because we don't run :1 (ASAN) for ARM and ARM64. +# because we don't run :1 (ASan) for ARM and ARM64. std/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/ostream.pass.cpp:0 SKIPPED std/time/time.cal/time.cal.ymd/time.cal.ymd.nonmembers/ostream.pass.cpp:2 SKIPPED std/time/time.clock/time.clock.system/sys_date.ostream.pass.cpp:0 SKIPPED From da2070b5dff509c5048d936aa587ac080e260e84 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Fri, 30 Aug 2024 16:51:20 -0700 Subject: [PATCH 09/10] Remove misleading `formatter` comment The deleted default constructor isn't the only feature necessary for a disabled specialization of `formatter`. --- stl/inc/__msvc_formatter.hpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/stl/inc/__msvc_formatter.hpp b/stl/inc/__msvc_formatter.hpp index ed9d1071ade..b8ff37b0d25 100644 --- a/stl/inc/__msvc_formatter.hpp +++ b/stl/inc/__msvc_formatter.hpp @@ -129,8 +129,6 @@ class basic_format_parse_context; template concept _Format_supported_charT = _Is_any_of_v<_CharT, char, wchar_t>; -// Generic formatter definition, the deleted default constructor -// makes it "disabled" as per N4950 [format.formatter.spec]/5 _EXPORT_STD template struct formatter { formatter() = delete; From 31abadc65cab7a0fd004287d8d7176b61b037538 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Tue, 10 Sep 2024 08:38:31 -0700 Subject: [PATCH 10/10] Cleanup unintended Runall configuration names The escape hatch variations I think are clear enough and easily searchable, so I removed the comments. I kept the comments in `GH_000431_lex_compare_memcmp_classify`, it's explaining something subtle. --- .../std/tests/GH_000431_lex_compare_memcmp_classify/env.lst | 6 ++++-- tests/std/tests/VSO_0000000_vector_algorithms/env.lst | 4 ++-- .../std/tests/VSO_0000000_vector_algorithms_floats/env.lst | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/std/tests/GH_000431_lex_compare_memcmp_classify/env.lst b/tests/std/tests/GH_000431_lex_compare_memcmp_classify/env.lst index 00256420b81..a414ee43bda 100644 --- a/tests/std/tests/GH_000431_lex_compare_memcmp_classify/env.lst +++ b/tests/std/tests/GH_000431_lex_compare_memcmp_classify/env.lst @@ -3,5 +3,7 @@ RUNALL_INCLUDE ..\char8_t_matrix.lst RUNALL_CROSSLIST -* PM_CL="" # Test manual vectorization -* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" # Test memcmp optimization +# Test manual vectorization: +* PM_CL="" +# Test memcmp optimization: +* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" diff --git a/tests/std/tests/VSO_0000000_vector_algorithms/env.lst b/tests/std/tests/VSO_0000000_vector_algorithms/env.lst index 7837a2e3283..78fbe6b49a4 100644 --- a/tests/std/tests/VSO_0000000_vector_algorithms/env.lst +++ b/tests/std/tests/VSO_0000000_vector_algorithms/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_matrix.lst RUNALL_CROSSLIST -* PM_CL="" # Test default setting -* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" # Test escape hatch, see GH-1751 +* PM_CL="" +* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" diff --git a/tests/std/tests/VSO_0000000_vector_algorithms_floats/env.lst b/tests/std/tests/VSO_0000000_vector_algorithms_floats/env.lst index b2af3deb673..089442601da 100644 --- a/tests/std/tests/VSO_0000000_vector_algorithms_floats/env.lst +++ b/tests/std/tests/VSO_0000000_vector_algorithms_floats/env.lst @@ -54,5 +54,5 @@ RUNALL_CROSSLIST * PM_CL="/fp:precise" * PM_CL="/fp:fast" RUNALL_CROSSLIST -* PM_CL="" # Test default setting -* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" # Test escape hatch, see GH-1751 +* PM_CL="" +* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0"