From 97161cdf9f64791c068d6f0f05df5b6f52ea81ae Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sat, 23 Sep 2023 06:28:01 +0800 Subject: [PATCH 01/25] Fix comparison operators and `get` of `array` (#4041) Co-authored-by: Stephan T. Lavavej --- stl/inc/array | 41 ++- stl/inc/xutility | 7 + tests/std/test.lst | 1 + .../env.lst | 4 + .../test.cpp | 314 ++++++++++++++++++ 5 files changed, 358 insertions(+), 9 deletions(-) create mode 100644 tests/std/tests/GH_004040_container_nonmember_functions/env.lst create mode 100644 tests/std/tests/GH_004040_container_nonmember_functions/test.cpp diff --git a/stl/inc/array b/stl/inc/array index 1513b3829be..00b4bc37d14 100644 --- a/stl/inc/array +++ b/stl/inc/array @@ -775,7 +775,7 @@ _CONSTEXPR20 void swap(array<_Ty, _Size>& _Left, array<_Ty, _Size>& _Right) noex _EXPORT_STD template _NODISCARD _CONSTEXPR20 bool operator==(const array<_Ty, _Size>& _Left, const array<_Ty, _Size>& _Right) { - return _STD equal(_Left._Unchecked_begin(), _Left._Unchecked_end(), _Right._Unchecked_begin()); + return _STD equal(_Left.data(), _Left.data() + _Size, _Right.data()); } #if !_HAS_CXX20 @@ -789,14 +789,13 @@ _NODISCARD bool operator!=(const array<_Ty, _Size>& _Left, const array<_Ty, _Siz _EXPORT_STD template _NODISCARD constexpr _Synth_three_way_result<_Ty> operator<=>( const array<_Ty, _Size>& _Left, const array<_Ty, _Size>& _Right) { - return _STD lexicographical_compare_three_way(_Left._Unchecked_begin(), _Left._Unchecked_end(), - _Right._Unchecked_begin(), _Right._Unchecked_end(), _Synth_three_way{}); + return _STD lexicographical_compare_three_way( + _Left.data(), _Left.data() + _Size, _Right.data(), _Right.data() + _Size, _Synth_three_way{}); } #else // ^^^ defined(__cpp_lib_concepts) / !defined(__cpp_lib_concepts) vvv template _NODISCARD _CONSTEXPR20 bool operator<(const array<_Ty, _Size>& _Left, const array<_Ty, _Size>& _Right) { - return _STD lexicographical_compare( - _Left._Unchecked_begin(), _Left._Unchecked_end(), _Right._Unchecked_begin(), _Right._Unchecked_end()); + return _STD lexicographical_compare(_Left.data(), _Left.data() + _Size, _Right.data(), _Right.data() + _Size); } template @@ -850,25 +849,49 @@ _NODISCARD constexpr array, _Size> to_array(_Ty (&&_Array)[_Siz _EXPORT_STD template _NODISCARD constexpr _Ty& get(array<_Ty, _Size>& _Arr) noexcept { static_assert(_Idx < _Size, "array index out of bounds"); - return _Arr._Elems[_Idx]; + if constexpr (_Has_unchecked_begin_end>) { + return _Arr._Elems[_Idx]; + } else { +#if _HAS_CXX17 + return _Arr[_Idx]; +#else // ^^^ _HAS_CXX17 / !_HAS_CXX17 vvv + return const_cast<_Ty&>(_STD as_const(_Arr)[_Idx]); +#endif // ^^^ !_HAS_CXX17 ^^^ + } } _EXPORT_STD template _NODISCARD constexpr const _Ty& get(const array<_Ty, _Size>& _Arr) noexcept { static_assert(_Idx < _Size, "array index out of bounds"); - return _Arr._Elems[_Idx]; + if constexpr (_Has_unchecked_begin_end>) { + return _Arr._Elems[_Idx]; + } else { + return _Arr[_Idx]; + } } _EXPORT_STD template _NODISCARD constexpr _Ty&& get(array<_Ty, _Size>&& _Arr) noexcept { static_assert(_Idx < _Size, "array index out of bounds"); - return _STD move(_Arr._Elems[_Idx]); + if constexpr (_Has_unchecked_begin_end>) { + return _STD move(_Arr._Elems[_Idx]); + } else { +#if _HAS_CXX17 + return _STD move(_Arr[_Idx]); +#else // ^^^ _HAS_CXX17 / !_HAS_CXX17 vvv + return const_cast<_Ty&&>(_STD move(_STD as_const(_Arr)[_Idx])); +#endif // ^^^ !_HAS_CXX17 ^^^ + } } _EXPORT_STD template _NODISCARD constexpr const _Ty&& get(const array<_Ty, _Size>&& _Arr) noexcept { static_assert(_Idx < _Size, "array index out of bounds"); - return _STD move(_Arr._Elems[_Idx]); + if constexpr (_Has_unchecked_begin_end>) { + return _STD move(_Arr._Elems[_Idx]); + } else { + return _STD move(_Arr[_Idx]); + } } #if _HAS_TR1_NAMESPACE diff --git a/stl/inc/xutility b/stl/inc/xutility index 351138b4716..e03a9c49991 100644 --- a/stl/inc/xutility +++ b/stl/inc/xutility @@ -585,6 +585,13 @@ struct _Unused_parameter { // generic unused parameter struct constexpr _Unused_parameter(_Ty&&) noexcept {} }; +template // checks whether a container/view is a non-customized specialization +_INLINE_VAR constexpr bool _Has_unchecked_begin_end = false; + +template +_INLINE_VAR constexpr bool _Has_unchecked_begin_end<_Ty, + void_t()._Unchecked_begin()), decltype(_STD declval<_Ty&>()._Unchecked_end())>> = true; + template using _Algorithm_int_t = conditional_t, _Ty, ptrdiff_t>; diff --git a/tests/std/test.lst b/tests/std/test.lst index 98d00840295..8c1a3602607 100644 --- a/tests/std/test.lst +++ b/tests/std/test.lst @@ -232,6 +232,7 @@ 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\LWG2381_num_get_floating_point tests\LWG2597_complex_branch_cut tests\LWG3018_shared_ptr_function diff --git a/tests/std/tests/GH_004040_container_nonmember_functions/env.lst b/tests/std/tests/GH_004040_container_nonmember_functions/env.lst new file mode 100644 index 00000000000..19f025bd0e6 --- /dev/null +++ b/tests/std/tests/GH_004040_container_nonmember_functions/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_004040_container_nonmember_functions/test.cpp b/tests/std/tests/GH_004040_container_nonmember_functions/test.cpp new file mode 100644 index 00000000000..25c53023fa0 --- /dev/null +++ b/tests/std/tests/GH_004040_container_nonmember_functions/test.cpp @@ -0,0 +1,314 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +#include +#include +#include +#include +#include +#include +#include +#include + +#define STATIC_ASSERT(...) static_assert(__VA_ARGS__, #__VA_ARGS__) + +#if _HAS_CXX20 +#define CONSTEXPR20 constexpr +#define CONSTEXPR17 constexpr +#define NODISCARD20 [[nodiscard]] +#elif _HAS_CXX17 // ^^^ _HAS_CXX20 / !_HAS_CXX20 && _HAS_CXX17 vvv +#define CONSTEXPR20 inline +#define CONSTEXPR17 constexpr +#define NODISCARD20 +#else // ^^^ !_HAS_CXX20 && _HAS_CXX17 / !_HAS_CXX17 vvv +#define CONSTEXPR20 inline +#define CONSTEXPR17 inline +#define NODISCARD20 +#endif // ^^^ !_HAS_CXX17 ^^^ + +using namespace std; + +struct Meow { +#if _HAS_CXX20 + friend constexpr auto operator<=>(Meow, Meow) = default; +#else // ^^^ _HAS_CXX20 / !_HAS_CXX20 vvv + friend constexpr bool operator==(Meow, Meow) noexcept { + return true; + } + + friend constexpr bool operator!=(Meow, Meow) noexcept { + return false; + } + + friend constexpr bool operator<(Meow, Meow) noexcept { + return false; + } + + friend constexpr bool operator>(Meow, Meow) noexcept { + return false; + } + + friend constexpr bool operator<=(Meow, Meow) noexcept { + return true; + } + + friend constexpr bool operator>=(Meow, Meow) noexcept { + return true; + } +#endif // ^^^ !_HAS_CXX20 ^^^ +}; + +template +struct std::array { + using value_type = Meow; + using pointer = Meow*; + using const_pointer = const Meow*; + using reference = Meow&; + using const_reference = const Meow&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using iterator = Meow*; + using const_iterator = const Meow*; + using reverse_iterator = std::reverse_iterator; + using const_reverse_iterator = std::reverse_iterator; + + CONSTEXPR20 void fill(const Meow&) {} // Meow is no-op assignable. + CONSTEXPR20 void swap(array&) noexcept {} // Meow is no-op swappable. + + CONSTEXPR17 iterator begin() noexcept { + return elems_; + } + CONSTEXPR17 const_iterator begin() const noexcept { + return elems_; + } + CONSTEXPR17 iterator end() noexcept { + return elems_ + N; + } + CONSTEXPR17 const_iterator end() const noexcept { + return elems_ + N; + } + + CONSTEXPR17 reverse_iterator rbegin() noexcept { + return reverse_iterator{elems_ + N}; + } + CONSTEXPR17 const_reverse_iterator rbegin() const noexcept { + return const_reverse_iterator{elems_ + N}; + } + CONSTEXPR17 reverse_iterator rend() noexcept { + return reverse_iterator{elems_}; + } + CONSTEXPR17 const_reverse_iterator rend() const noexcept { + return const_reverse_iterator{elems_}; + } + + CONSTEXPR17 const_iterator cbegin() const noexcept { + return elems_; + } + CONSTEXPR17 const_iterator cend() const noexcept { + return elems_ + N; + } + CONSTEXPR17 const_reverse_iterator crbegin() const noexcept { + return const_reverse_iterator{elems_ + N}; + } + CONSTEXPR17 const_reverse_iterator crend() const noexcept { + return const_reverse_iterator{elems_}; + } + + NODISCARD20 constexpr bool empty() const noexcept { + return false; + } + constexpr size_type size() const noexcept { + return N; + } + constexpr size_type max_size() const noexcept { + return N; + } + + CONSTEXPR17 reference operator[](size_type n) { + return elems_[n]; + } + constexpr const_reference operator[](size_type n) const { + return elems_[n]; + } + CONSTEXPR17 reference at(size_type n) { + return n < N ? elems_[n] : throw out_of_range{"bad array access"}; + } + constexpr const_reference at(size_type n) const { + return n < N ? elems_[n] : throw out_of_range{"bad array access"}; + } + CONSTEXPR17 reference front() { + return elems_[0]; + } + constexpr const_reference front() const { + return elems_[0]; + } + CONSTEXPR17 reference back() { + return elems_[N - 1]; + } + constexpr const_reference back() const { + return elems_[N - 1]; + } + + CONSTEXPR17 pointer data() noexcept { + return elems_; + } + CONSTEXPR17 const_pointer data() const noexcept { + return elems_; + } + + Meow elems_[N]; +}; + +template <> +struct std::array { + using value_type = Meow; + using pointer = Meow*; + using const_pointer = const Meow*; + using reference = Meow&; + using const_reference = const Meow&; + using size_type = size_t; + using difference_type = ptrdiff_t; + using iterator = Meow*; + using const_iterator = const Meow*; + using reverse_iterator = std::reverse_iterator; + using const_reverse_iterator = std::reverse_iterator; + + CONSTEXPR20 void fill(const Meow&) {} // Meow is no-op assignable. + CONSTEXPR20 void swap(array&) noexcept {} // Meow is no-op swappable. + + CONSTEXPR17 iterator begin() noexcept { + return nullptr; + } + CONSTEXPR17 const_iterator begin() const noexcept { + return nullptr; + } + CONSTEXPR17 iterator end() noexcept { + return nullptr; + } + CONSTEXPR17 const_iterator end() const noexcept { + return nullptr; + } + + CONSTEXPR17 reverse_iterator rbegin() noexcept { + return reverse_iterator{end()}; + } + CONSTEXPR17 const_reverse_iterator rbegin() const noexcept { + return const_reverse_iterator{end()}; + } + CONSTEXPR17 reverse_iterator rend() noexcept { + return reverse_iterator{begin()}; + } + CONSTEXPR17 const_reverse_iterator rend() const noexcept { + return const_reverse_iterator{begin()}; + } + + CONSTEXPR17 const_iterator cbegin() const noexcept { + return nullptr; + } + CONSTEXPR17 const_iterator cend() const noexcept { + return nullptr; + } + CONSTEXPR17 const_reverse_iterator crbegin() const noexcept { + return const_reverse_iterator{end()}; + } + CONSTEXPR17 const_reverse_iterator crend() const noexcept { + return const_reverse_iterator{begin()}; + } + + NODISCARD20 constexpr bool empty() const noexcept { + return true; + } + constexpr size_type size() const noexcept { + return 0; + } + constexpr size_type max_size() const noexcept { + return 0; + } + + // Perhaps these functions of array shouldn't be constexpr as an invocation is always throwing or UB. + reference operator[](size_type) { + abort(); // UB + } + const_reference operator[](size_type) const { + abort(); // UB + } + reference at(size_type) { + throw out_of_range{"bad array access"}; + } + const_reference at(size_type) const { + throw out_of_range{"bad array access"}; + } + reference front() { + abort(); // UB + } + const_reference front() const { + abort(); // UB + } + reference back() { + abort(); // UB + } + const_reference back() const { + abort(); // UB + } + + CONSTEXPR17 pointer data() noexcept { + return nullptr; + } + CONSTEXPR17 const_pointer data() const noexcept { + return nullptr; + } + + unsigned char dummy_[1]; +}; + +constexpr bool test_array_get() { + array a{}; + const auto& c = a; + + STATIC_ASSERT(is_same_v(a)), Meow&>); + STATIC_ASSERT(is_same_v(c)), const Meow&>); + STATIC_ASSERT(is_same_v(move(a))), Meow&&>); + STATIC_ASSERT(is_same_v(move(c))), const Meow&&>); + + assert(get<0>(a) == Meow{}); + assert(get<0>(c) == Meow{}); + assert(get<0>(move(a)) == Meow{}); + assert(get<0>(move(c)) == Meow{}); + + return true; +} + +CONSTEXPR20 bool test_array_comparison() { + using A0 = array; + assert(A0{} == A0{}); + assert(!(A0{} != A0{})); + assert(!(A0{} < A0{})); + assert(!(A0{} > A0{})); + assert(A0{} <= A0{}); + assert(A0{} >= A0{}); +#if _HAS_CXX20 && defined(__cpp_lib_concepts) // TRANSITION, GH-395 + assert(A0{} <=> A0{} == strong_ordering::equal); +#endif // _HAS_CXX20 && defined(__cpp_lib_concepts) + + using A1 = array; + assert(A1{} == A1{}); + assert(!(A1{} != A1{})); + assert(!(A1{} < A1{})); + assert(!(A1{} > A1{})); + assert(A1{} <= A1{}); + assert(A1{} >= A1{}); +#if _HAS_CXX20 && defined(__cpp_lib_concepts) // TRANSITION, GH-395 + assert(A1{} <=> A1{} == strong_ordering::equal); +#endif // _HAS_CXX20 && defined(__cpp_lib_concepts) + + return true; +} + +int main() { + test_array_get(); + STATIC_ASSERT(test_array_get()); + test_array_comparison(); +#if _HAS_CXX20 + static_assert(test_array_comparison()); +#endif // _HAS_CXX20 +} From bb864444d1f049e1caa2c9f9072740daf2b93bde Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Sat, 23 Sep 2023 06:30:45 +0800 Subject: [PATCH 02/25] Make `to_array` ADL-proof (#4042) Co-authored-by: Stephan T. Lavavej --- stl/inc/array | 6 +++--- tests/std/tests/P0325R4_to_array/test.cpp | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/stl/inc/array b/stl/inc/array index 00b4bc37d14..cdc0267dc79 100644 --- a/stl/inc/array +++ b/stl/inc/array @@ -433,7 +433,7 @@ public: } _CONSTEXPR20 void swap(array& _Other) noexcept(_Is_nothrow_swappable<_Ty>::value) { - _Swap_ranges_unchecked(_Elems, _Elems + _Size, _Other._Elems); + _STD _Swap_ranges_unchecked(_Elems, _Elems + _Size, _Other._Elems); } _NODISCARD _CONSTEXPR17 iterator begin() noexcept { @@ -833,7 +833,7 @@ _NODISCARD constexpr array, _Size> to_array(_Ty (&_Array)[_Size "to_array does not accept multidimensional arrays."); static_assert(is_constructible_v<_Ty, _Ty&>, "N4950 [array.creation]/1: " "to_array requires copy constructible elements."); - return _To_array_lvalue_impl(_Array, make_index_sequence<_Size>{}); + return _STD _To_array_lvalue_impl(_Array, make_index_sequence<_Size>{}); } _EXPORT_STD template @@ -842,7 +842,7 @@ _NODISCARD constexpr array, _Size> to_array(_Ty (&&_Array)[_Siz "to_array does not accept multidimensional arrays."); static_assert(is_move_constructible_v<_Ty>, "N4950 [array.creation]/4: " "to_array requires move constructible elements."); - return _To_array_rvalue_impl(_STD move(_Array), make_index_sequence<_Size>{}); + return _STD _To_array_rvalue_impl(_STD move(_Array), make_index_sequence<_Size>{}); } #endif // _HAS_CXX20 diff --git a/tests/std/tests/P0325R4_to_array/test.cpp b/tests/std/tests/P0325R4_to_array/test.cpp index ccdbbdcecb1..adf4c3ae531 100644 --- a/tests/std/tests/P0325R4_to_array/test.cpp +++ b/tests/std/tests/P0325R4_to_array/test.cpp @@ -53,6 +53,21 @@ void assert_not_constexpr() { assert_equal(to_array({"cats"s, "go"s, "meow"s}), array{"cats", "go", "meow"}); } +#ifndef _M_CEE // TRANSITION, VSO-1659496 +struct incomplete; + +template +struct holder { + T t; +}; + +void test_adl_proof() { // COMPILE-ONLY + holder* a[1]{}; + (void) std::to_array(a); // intentionally qualified to avoid ADL + (void) std::to_array(std::move(a)); // intentionally qualified to avoid ADL +} +#endif // _M_CEE + int main() { assert(assert_constexpr()); static_assert(assert_constexpr()); From 48eedd369d6c88130fff4d15afb88f016fa6e648 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Fri, 22 Sep 2023 15:32:07 -0700 Subject: [PATCH 03/25] ASAN found _two_ bugs in `_Copy_vbool`! (#4045) --- stl/inc/vector | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/stl/inc/vector b/stl/inc/vector index 95ef86aae3b..3f86a5258d9 100644 --- a/stl/inc/vector +++ b/stl/inc/vector @@ -3748,7 +3748,7 @@ _CONSTEXPR20 _OutIt _Copy_vbool(_VbIt _First, _VbIt _Last, _OutIt _Dest) { const auto _LastDestMask = static_cast<_Vbase>(-1) << _DestEnd._Myoff; const bool _IsSingleBlockSource = _VbFirst == _VbLast; - const bool _IsSingleBlockDest = _VbDest == _DestEnd._Myptr; + const bool _IsSingleBlockDest = _VbDest == _DestEnd._Myptr - (_DestEnd._Myoff == 0 ? 1 : 0); const bool _IsRightShift = _Dest._Myoff < _First._Myoff; if (_IsSingleBlockSource) { // We already excluded _First == _Last, so here _Last._Myoff > 0 and the shift is safe @@ -3757,7 +3757,7 @@ _CONSTEXPR20 _OutIt _Copy_vbool(_VbIt _First, _VbIt _Last, _OutIt _Dest) { const auto _SourceVal = _IsRightShift ? (*_VbFirst & _SourceMask) >> _SourceShift // : (*_VbFirst & _SourceMask) << _SourceShift; if (_IsSingleBlockDest) { - const auto _DestMask = _FirstDestMask | _LastDestMask; + const auto _DestMask = _FirstDestMask | (_DestEnd._Myoff == 0 ? 0 : _LastDestMask); *_VbDest = (*_VbDest & _DestMask) | _SourceVal; } else { *_VbDest = (*_VbDest & _FirstDestMask) | _SourceVal; @@ -3774,7 +3774,7 @@ _CONSTEXPR20 _OutIt _Copy_vbool(_VbIt _First, _VbIt _Last, _OutIt _Dest) { const auto _SourceVal = _IsRightShift ? (*_VbFirst & _FirstSourceMask) >> _SourceShift // : (*_VbFirst & _FirstSourceMask) << _SourceShift; - const auto _DestMask = _FirstDestMask | _LastDestMask; + const auto _DestMask = _FirstDestMask | (_DestEnd._Myoff == 0 ? 0 : _LastDestMask); if (_Last._Myoff != 0) { const auto _LastShift = _DestEnd._Myoff - _Last._Myoff; const auto _LastSourceVal = (*_VbLast & _LastSourceMask) << _LastShift; @@ -3842,20 +3842,22 @@ _CONSTEXPR20 _OutIt _Copy_vbool(_VbIt _First, _VbIt _Last, _OutIt _Dest) { *_VbDest = (*_VbDest & _DestMask) | _SourceVal; } - const auto _CarryVal = (*_VbFirst & _LastSourceMask) << _CarryShift; - if (_Last._Myoff >= _SourceShift) { - *_VbDest = (*_VbDest & _CarryMask) | _CarryVal; - - // We have more bits remaining than the final block has left - if (_Last._Myoff != _SourceShift) { - ++_VbDest; - const auto _SourceVal = (*_VbFirst & _LastSourceMask) >> _SourceShift; - *_VbDest = (*_VbDest & _LastDestMask) | _SourceVal; + if (_Last._Myoff != 0) { + const auto _CarryVal = (*_VbFirst & _LastSourceMask) << _CarryShift; + if (_Last._Myoff >= _SourceShift) { + *_VbDest = (*_VbDest & _CarryMask) | _CarryVal; + + // We have more bits remaining than the final block has left + if (_Last._Myoff != _SourceShift) { + ++_VbDest; + const auto _SourceVal = (*_VbFirst & _LastSourceMask) >> _SourceShift; + *_VbDest = (*_VbDest & _LastDestMask) | _SourceVal; + } + } else { + // There are not enough bits to fill the final block so we need to mask both ends + const auto _FinalMask = _CarryMask | _LastDestMask; + *_VbDest = (*_VbDest & _FinalMask) | _CarryVal; } - } else if (_Last._Myoff != 0) { - // There are not enough bits to fill the final block so we need to mask both ends - const auto _FinalMask = _CarryMask | _LastDestMask; - *_VbDest = (*_VbDest & _FinalMask) | _CarryVal; } } else { const auto _SourceShift = _Dest._Myoff - _First._Myoff; From 6735beb0c2260e325c3a4c971ec5b75427e9305f Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Wed, 27 Sep 2023 12:10:19 -0700 Subject: [PATCH 04/25] MSBuild Project Refactor (#4054) This is a mirror of internal MSVC-PR-485982 which heavily restructures the internal build. --- .../stl_1/md/msvcp_1_app/msvcp_1.nativeproj | 30 ++++++++++--------- .../md/msvcp_1_kernel32/msvcp_1.nativeproj | 30 ++++++++++--------- .../stl_1/md/msvcp_1_netfx/msvcp_1.nativeproj | 30 ++++++++++--------- .../md/msvcp_1_onecore/msvcp_1.nativeproj | 30 ++++++++++--------- stl/msbuild/stl_1/msvcp_1.settings.targets | 5 ++-- .../stl_1/xmd/msvcp_1_app/msvcp_1.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_1_kernel32/msvcp_1.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_1_netfx/msvcp_1.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_1_onecore/msvcp_1.nativeproj | 30 ++++++++++--------- .../stl_2/md/msvcp_2_app/msvcp_2.nativeproj | 30 ++++++++++--------- .../md/msvcp_2_kernel32/msvcp_2.nativeproj | 30 ++++++++++--------- .../stl_2/md/msvcp_2_netfx/msvcp_2.nativeproj | 30 ++++++++++--------- .../md/msvcp_2_onecore/msvcp_2.nativeproj | 30 ++++++++++--------- stl/msbuild/stl_2/msvcp_2.settings.targets | 5 ++-- .../stl_2/xmd/msvcp_2_app/msvcp_2.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_2_kernel32/msvcp_2.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_2_netfx/msvcp_2.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_2_onecore/msvcp_2.nativeproj | 30 ++++++++++--------- stl/msbuild/stl_asan/stl_asan.nativeproj | 26 ++++++++-------- .../stl_asan/stl_asan.settings.targets | 4 ++- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.settings.targets | 5 ++-- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- .../msvcp_atomic_wait.nativeproj | 30 ++++++++++--------- stl/msbuild/stl_base/libcp.settings.targets | 4 ++- .../stl_base/md/msvcp_app/msvcp.nativeproj | 30 ++++++++++--------- .../md/msvcp_kernel32/msvcp.nativeproj | 30 ++++++++++--------- .../stl_base/md/msvcp_netfx/msvcp.nativeproj | 30 ++++++++++--------- .../md/msvcp_onecore/msvcp.nativeproj | 30 ++++++++++--------- stl/msbuild/stl_base/msvcp.settings.targets | 5 ++-- .../mt/libcpmt_kernel32/libcpmt.nativeproj | 30 ++++++++++--------- .../mt/libcpmt_onecore/libcpmt.nativeproj | 30 ++++++++++--------- .../mt1/libcpmt_kernel32/libcpmt.nativeproj | 30 ++++++++++--------- .../mt1/libcpmt_onecore/libcpmt.nativeproj | 30 ++++++++++--------- .../stl_base/xmd/msvcp_app/msvcp.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_kernel32/msvcp.nativeproj | 30 ++++++++++--------- .../stl_base/xmd/msvcp_netfx/msvcp.nativeproj | 30 ++++++++++--------- .../xmd/msvcp_onecore/msvcp.nativeproj | 30 ++++++++++--------- .../xmt/libcpmt_kernel32/libcpmt.nativeproj | 30 ++++++++++--------- .../xmt/libcpmt_onecore/libcpmt.nativeproj | 30 ++++++++++--------- .../xmt0/libcpmt_kernel32/libcpmt.nativeproj | 30 ++++++++++--------- .../xmt0/libcpmt_onecore/libcpmt.nativeproj | 30 ++++++++++--------- .../xmt1/libcpmt_kernel32/libcpmt.nativeproj | 30 ++++++++++--------- .../xmt1/libcpmt_onecore/libcpmt.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.settings.targets | 5 ++-- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../msvcp_codecvt_ids.nativeproj | 30 ++++++++++--------- .../md/msvcp_post_app/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_kernel32/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_netcore/msvcp_post.nativeproj | 30 ++++++++++--------- .../md/msvcp_post_netfx/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_onecore/msvcp_post.nativeproj | 30 ++++++++++--------- .../stl_post/msvcp_post.settings.targets | 5 ++-- .../xmd/msvcp_post_app/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_kernel32/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_netcore/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_netfx/msvcp_post.nativeproj | 30 ++++++++++--------- .../msvcp_post_onecore/msvcp_post.nativeproj | 30 ++++++++++--------- 69 files changed, 998 insertions(+), 866 deletions(-) diff --git a/stl/msbuild/stl_1/md/msvcp_1_app/msvcp_1.nativeproj b/stl/msbuild/stl_1/md/msvcp_1_app/msvcp_1.nativeproj index 966b3699874..9a2a0eeb8ae 100644 --- a/stl/msbuild/stl_1/md/msvcp_1_app/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/md/msvcp_1_app/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {AC581714-5C34-43F1-88AA-F239723F751F} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_1/md/msvcp_1_kernel32/msvcp_1.nativeproj b/stl/msbuild/stl_1/md/msvcp_1_kernel32/msvcp_1.nativeproj index 781acdc848d..258e418170a 100644 --- a/stl/msbuild/stl_1/md/msvcp_1_kernel32/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/md/msvcp_1_kernel32/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {58C30DB7-35C9-432D-8490-66F6E5901B8F} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_1/md/msvcp_1_netfx/msvcp_1.nativeproj b/stl/msbuild/stl_1/md/msvcp_1_netfx/msvcp_1.nativeproj index a8148f1e68d..39c8ebc8873 100644 --- a/stl/msbuild/stl_1/md/msvcp_1_netfx/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/md/msvcp_1_netfx/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {CAA5F16A-A6C1-4450-981D-E3BF0F0A7B5B} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_1/md/msvcp_1_onecore/msvcp_1.nativeproj b/stl/msbuild/stl_1/md/msvcp_1_onecore/msvcp_1.nativeproj index 4b1ddcbfce3..732b4404a0d 100644 --- a/stl/msbuild/stl_1/md/msvcp_1_onecore/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/md/msvcp_1_onecore/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {2BD1256B-3615-4061-AD30-4F5E1E092381} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_1/msvcp_1.settings.targets b/stl/msbuild/stl_1/msvcp_1.settings.targets index 57849d8912b..176ccb16a5a 100644 --- a/stl/msbuild/stl_1/msvcp_1.settings.targets +++ b/stl/msbuild/stl_1/msvcp_1.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + DynamicLibrary + p_1 @@ -11,8 +14,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - DYNLINK diff --git a/stl/msbuild/stl_1/xmd/msvcp_1_app/msvcp_1.nativeproj b/stl/msbuild/stl_1/xmd/msvcp_1_app/msvcp_1.nativeproj index b386bc9bc49..4370ebc1e10 100644 --- a/stl/msbuild/stl_1/xmd/msvcp_1_app/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/xmd/msvcp_1_app/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {E30D9740-AD72-4A90-B8A9-A1CABCC52EB9} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_1/xmd/msvcp_1_kernel32/msvcp_1.nativeproj b/stl/msbuild/stl_1/xmd/msvcp_1_kernel32/msvcp_1.nativeproj index d834b6edd69..8fa959f7c76 100644 --- a/stl/msbuild/stl_1/xmd/msvcp_1_kernel32/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/xmd/msvcp_1_kernel32/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {A90AB3DB-494B-4ECD-AEFB-E880F9C58F74} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_1/xmd/msvcp_1_netfx/msvcp_1.nativeproj b/stl/msbuild/stl_1/xmd/msvcp_1_netfx/msvcp_1.nativeproj index 378adb8e009..bed9439872c 100644 --- a/stl/msbuild/stl_1/xmd/msvcp_1_netfx/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/xmd/msvcp_1_netfx/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {B37B087A-D591-472E-8E73-396CD32F5E77} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_1/xmd/msvcp_1_onecore/msvcp_1.nativeproj b/stl/msbuild/stl_1/xmd/msvcp_1_onecore/msvcp_1.nativeproj index 3eeaf9b1d62..24ba1f0c656 100644 --- a/stl/msbuild/stl_1/xmd/msvcp_1_onecore/msvcp_1.nativeproj +++ b/stl/msbuild/stl_1/xmd/msvcp_1_onecore/msvcp_1.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {6E55B52D-472B-4A51-AC94-B1E391ECAAD7} + false + + + + xmd + onecore + true + + diff --git a/stl/msbuild/stl_2/md/msvcp_2_app/msvcp_2.nativeproj b/stl/msbuild/stl_2/md/msvcp_2_app/msvcp_2.nativeproj index 9747790c304..fb8bc40c850 100644 --- a/stl/msbuild/stl_2/md/msvcp_2_app/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/md/msvcp_2_app/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {451BB540-FBE3-4BFC-B3FC-1D118E6D44ED} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_2/md/msvcp_2_kernel32/msvcp_2.nativeproj b/stl/msbuild/stl_2/md/msvcp_2_kernel32/msvcp_2.nativeproj index bcff4e94ca8..bdce81e61b9 100644 --- a/stl/msbuild/stl_2/md/msvcp_2_kernel32/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/md/msvcp_2_kernel32/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {219EFF3E-A40D-46E4-86DC-887AF90330CA} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_2/md/msvcp_2_netfx/msvcp_2.nativeproj b/stl/msbuild/stl_2/md/msvcp_2_netfx/msvcp_2.nativeproj index 840069c3b6a..7dcac8b0f07 100644 --- a/stl/msbuild/stl_2/md/msvcp_2_netfx/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/md/msvcp_2_netfx/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {DEC67AC5-1EF2-4745-BAFF-28484A23477E} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_2/md/msvcp_2_onecore/msvcp_2.nativeproj b/stl/msbuild/stl_2/md/msvcp_2_onecore/msvcp_2.nativeproj index 38e5772cb39..a1063717ef8 100644 --- a/stl/msbuild/stl_2/md/msvcp_2_onecore/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/md/msvcp_2_onecore/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {24C78BD7-AED7-4090-BE81-8E3247ECC5A3} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_2/msvcp_2.settings.targets b/stl/msbuild/stl_2/msvcp_2.settings.targets index eab44b6af00..b11b1a4c331 100644 --- a/stl/msbuild/stl_2/msvcp_2.settings.targets +++ b/stl/msbuild/stl_2/msvcp_2.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + DynamicLibrary + p_2 @@ -11,8 +14,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - DYNLINK diff --git a/stl/msbuild/stl_2/xmd/msvcp_2_app/msvcp_2.nativeproj b/stl/msbuild/stl_2/xmd/msvcp_2_app/msvcp_2.nativeproj index 5751496f0f4..1c1a9414c70 100644 --- a/stl/msbuild/stl_2/xmd/msvcp_2_app/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/xmd/msvcp_2_app/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {EFC70BD7-F82E-4951-8F60-468B164BF419} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_2/xmd/msvcp_2_kernel32/msvcp_2.nativeproj b/stl/msbuild/stl_2/xmd/msvcp_2_kernel32/msvcp_2.nativeproj index 0c78314cdc8..071b5877006 100644 --- a/stl/msbuild/stl_2/xmd/msvcp_2_kernel32/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/xmd/msvcp_2_kernel32/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {3CFB766B-CCA6-4078-9A03-CAE24FF65373} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_2/xmd/msvcp_2_netfx/msvcp_2.nativeproj b/stl/msbuild/stl_2/xmd/msvcp_2_netfx/msvcp_2.nativeproj index a9b4b51afc2..73d7b05cd57 100644 --- a/stl/msbuild/stl_2/xmd/msvcp_2_netfx/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/xmd/msvcp_2_netfx/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {4A10E59B-BC11-478F-A911-4985F503B489} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_2/xmd/msvcp_2_onecore/msvcp_2.nativeproj b/stl/msbuild/stl_2/xmd/msvcp_2_onecore/msvcp_2.nativeproj index 96281b17219..b59f49bb03d 100644 --- a/stl/msbuild/stl_2/xmd/msvcp_2_onecore/msvcp_2.nativeproj +++ b/stl/msbuild/stl_2/xmd/msvcp_2_onecore/msvcp_2.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {4897703D-D42F-4CF6-B4C1-B7CFD3D9F054} + false + + + + xmd + onecore + true + + diff --git a/stl/msbuild/stl_asan/stl_asan.nativeproj b/stl/msbuild/stl_asan/stl_asan.nativeproj index cdb216a23ea..048d94c520b 100644 --- a/stl/msbuild/stl_asan/stl_asan.nativeproj +++ b/stl/msbuild/stl_asan/stl_asan.nativeproj @@ -1,14 +1,16 @@ - - - - - true - - - - + + + + {B8236181-0F0C-465B-8729-36944CBF324A} + false + + + + true + + diff --git a/stl/msbuild/stl_asan/stl_asan.settings.targets b/stl/msbuild/stl_asan/stl_asan.settings.targets index 766ed8b6612..eef8af472ad 100644 --- a/stl/msbuild/stl_asan/stl_asan.settings.targets +++ b/stl/msbuild/stl_asan/stl_asan.settings.targets @@ -4,10 +4,12 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + StaticLibrary + p_stl_asan - LIBRARY true diff --git a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj index 25ee294c299..4404468a37c 100644 --- a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {99C61FE5-793F-4D49-82F6-27938575B058} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj index fa3b0cb07d1..29819eaaa3b 100644 --- a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {2C785D3F-9961-46E9-A202-D410DAD6269D} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj index b3d49531cde..f81dae4d668 100644 --- a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {B0D8709C-8649-43DF-AB53-AA05134A9B83} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj index 5ecec8dcfc2..76c7329c1b0 100644 --- a/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/md/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {22F86914-609E-4BF5-A1DA-2804C1251044} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_atomic_wait/msvcp_atomic_wait.settings.targets b/stl/msbuild/stl_atomic_wait/msvcp_atomic_wait.settings.targets index 43eb0ad9e78..2f778a88276 100644 --- a/stl/msbuild/stl_atomic_wait/msvcp_atomic_wait.settings.targets +++ b/stl/msbuild/stl_atomic_wait/msvcp_atomic_wait.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + DynamicLibrary + p_atomic_wait @@ -11,8 +14,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - DYNLINK diff --git a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj index 3cf18558d38..719161c308a 100644 --- a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_app/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {3AEA1ADF-5AA1-4BAB-B0AA-104B622C75B5} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj index 1226365ae6b..96aff15ad9a 100644 --- a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_kernel32/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {D771D7D3-3021-4CBE-A966-68CD817D0C04} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj index aa9cdc5716a..9d566dadb5f 100644 --- a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_netfx/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {31EE7F7B-CF43-489D-8419-EDB8F2C152EE} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj index 6b512a2847c..1f9168ca537 100644 --- a/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj +++ b/stl/msbuild/stl_atomic_wait/xmd/msvcp_atomic_wait_onecore/msvcp_atomic_wait.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {57A6A807-C9DC-4ADF-8128-3589FCDAA2E4} + false + + + + xmd + onecore + true + + diff --git a/stl/msbuild/stl_base/libcp.settings.targets b/stl/msbuild/stl_base/libcp.settings.targets index fcd73927832..23f4ca72a5d 100644 --- a/stl/msbuild/stl_base/libcp.settings.targets +++ b/stl/msbuild/stl_base/libcp.settings.targets @@ -4,10 +4,12 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + StaticLibrary + p - LIBRARY true true true diff --git a/stl/msbuild/stl_base/md/msvcp_app/msvcp.nativeproj b/stl/msbuild/stl_base/md/msvcp_app/msvcp.nativeproj index acddd63ea73..38fa814f722 100644 --- a/stl/msbuild/stl_base/md/msvcp_app/msvcp.nativeproj +++ b/stl/msbuild/stl_base/md/msvcp_app/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {26CFD97A-BD12-4347-ACEA-3B13904E59DA} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_base/md/msvcp_kernel32/msvcp.nativeproj b/stl/msbuild/stl_base/md/msvcp_kernel32/msvcp.nativeproj index 1a605f5a8c5..760912837d7 100644 --- a/stl/msbuild/stl_base/md/msvcp_kernel32/msvcp.nativeproj +++ b/stl/msbuild/stl_base/md/msvcp_kernel32/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {00EE32E2-A705-4D07-A967-60092E13F497} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_base/md/msvcp_netfx/msvcp.nativeproj b/stl/msbuild/stl_base/md/msvcp_netfx/msvcp.nativeproj index 7a455dc627b..7d3ec0cc88a 100644 --- a/stl/msbuild/stl_base/md/msvcp_netfx/msvcp.nativeproj +++ b/stl/msbuild/stl_base/md/msvcp_netfx/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {98CE2EB2-F428-4C28-9186-8D614658A1BE} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_base/md/msvcp_onecore/msvcp.nativeproj b/stl/msbuild/stl_base/md/msvcp_onecore/msvcp.nativeproj index 991f19e2f12..084241b2d2e 100644 --- a/stl/msbuild/stl_base/md/msvcp_onecore/msvcp.nativeproj +++ b/stl/msbuild/stl_base/md/msvcp_onecore/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {3318F9FE-FD4A-4D16-82F6-7DBC8007D1B6} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_base/msvcp.settings.targets b/stl/msbuild/stl_base/msvcp.settings.targets index 2d48b09ad3e..dd0140ac104 100644 --- a/stl/msbuild/stl_base/msvcp.settings.targets +++ b/stl/msbuild/stl_base/msvcp.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + DynamicLibrary + p @@ -14,8 +17,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - DYNLINK diff --git a/stl/msbuild/stl_base/mt/libcpmt_kernel32/libcpmt.nativeproj b/stl/msbuild/stl_base/mt/libcpmt_kernel32/libcpmt.nativeproj index e5fda7b500b..6a95c5dead9 100644 --- a/stl/msbuild/stl_base/mt/libcpmt_kernel32/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/mt/libcpmt_kernel32/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - mt - kernel32 - true - - - - + + + + {B56C39F9-89BF-486F-9C5E-B88FD82E2AA7} + false + + + + mt + kernel32 + true + + diff --git a/stl/msbuild/stl_base/mt/libcpmt_onecore/libcpmt.nativeproj b/stl/msbuild/stl_base/mt/libcpmt_onecore/libcpmt.nativeproj index f6f1144b9af..3c418307ea6 100644 --- a/stl/msbuild/stl_base/mt/libcpmt_onecore/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/mt/libcpmt_onecore/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - mt - onecore - true - - - - + + + + {5F515BBF-E680-4553-B38E-0C125D2A6455} + false + + + + mt + onecore + true + + diff --git a/stl/msbuild/stl_base/mt1/libcpmt_kernel32/libcpmt.nativeproj b/stl/msbuild/stl_base/mt1/libcpmt_kernel32/libcpmt.nativeproj index 1ef7535fc2b..5176f8fef9d 100644 --- a/stl/msbuild/stl_base/mt1/libcpmt_kernel32/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/mt1/libcpmt_kernel32/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - mt1 - kernel32 - true - - - - + + + + {027B5024-5996-4645-BC46-8FEF2E2A4E71} + false + + + + mt1 + kernel32 + true + + diff --git a/stl/msbuild/stl_base/mt1/libcpmt_onecore/libcpmt.nativeproj b/stl/msbuild/stl_base/mt1/libcpmt_onecore/libcpmt.nativeproj index 889fbe794cb..bd6ba4d81be 100644 --- a/stl/msbuild/stl_base/mt1/libcpmt_onecore/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/mt1/libcpmt_onecore/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - mt1 - onecore - true - - - - + + + + {0824A200-D996-41C0-87D8-62CF1D7483C6} + false + + + + mt1 + onecore + true + + diff --git a/stl/msbuild/stl_base/xmd/msvcp_app/msvcp.nativeproj b/stl/msbuild/stl_base/xmd/msvcp_app/msvcp.nativeproj index e3b55c5e3dc..d34cc038e06 100644 --- a/stl/msbuild/stl_base/xmd/msvcp_app/msvcp.nativeproj +++ b/stl/msbuild/stl_base/xmd/msvcp_app/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {3DFFE995-1592-4D71-A088-65B5E90829E3} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_base/xmd/msvcp_kernel32/msvcp.nativeproj b/stl/msbuild/stl_base/xmd/msvcp_kernel32/msvcp.nativeproj index 6a31bf3a079..241b0db2c9a 100644 --- a/stl/msbuild/stl_base/xmd/msvcp_kernel32/msvcp.nativeproj +++ b/stl/msbuild/stl_base/xmd/msvcp_kernel32/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {19B72B03-37A8-4ED7-85D9-26031335269E} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_base/xmd/msvcp_netfx/msvcp.nativeproj b/stl/msbuild/stl_base/xmd/msvcp_netfx/msvcp.nativeproj index 7aaf345b3ea..5dd0b9923b7 100644 --- a/stl/msbuild/stl_base/xmd/msvcp_netfx/msvcp.nativeproj +++ b/stl/msbuild/stl_base/xmd/msvcp_netfx/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {9E0C069E-C345-4977-9753-16CEE50029D8} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_base/xmd/msvcp_onecore/msvcp.nativeproj b/stl/msbuild/stl_base/xmd/msvcp_onecore/msvcp.nativeproj index d166a3f4b9d..a4e38d88190 100644 --- a/stl/msbuild/stl_base/xmd/msvcp_onecore/msvcp.nativeproj +++ b/stl/msbuild/stl_base/xmd/msvcp_onecore/msvcp.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {617D60ED-BAB2-45FA-8FAF-B0E7F9304403} + false + + + + xmd + onecore + true + + diff --git a/stl/msbuild/stl_base/xmt/libcpmt_kernel32/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt/libcpmt_kernel32/libcpmt.nativeproj index f7b8117cbeb..35587a51410 100644 --- a/stl/msbuild/stl_base/xmt/libcpmt_kernel32/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt/libcpmt_kernel32/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt - kernel32 - true - - - - + + + + {ECA62467-8F67-4F70-953D-0916472878AA} + false + + + + xmt + kernel32 + true + + diff --git a/stl/msbuild/stl_base/xmt/libcpmt_onecore/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt/libcpmt_onecore/libcpmt.nativeproj index 86c82dff9c2..b0d0e7da211 100644 --- a/stl/msbuild/stl_base/xmt/libcpmt_onecore/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt/libcpmt_onecore/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt - onecore - true - - - - + + + + {02DA6861-AC66-4EA6-B558-9D0E0F1073A8} + false + + + + xmt + onecore + true + + diff --git a/stl/msbuild/stl_base/xmt0/libcpmt_kernel32/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt0/libcpmt_kernel32/libcpmt.nativeproj index d76d2b7cab9..ca4a6a907d5 100644 --- a/stl/msbuild/stl_base/xmt0/libcpmt_kernel32/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt0/libcpmt_kernel32/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt0 - kernel32 - true - - - - + + + + {C9715C5F-41D3-472B-AC8D-4E374105FD6B} + false + + + + xmt0 + kernel32 + true + + diff --git a/stl/msbuild/stl_base/xmt0/libcpmt_onecore/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt0/libcpmt_onecore/libcpmt.nativeproj index d1945603266..8d4a6f2ae9b 100644 --- a/stl/msbuild/stl_base/xmt0/libcpmt_onecore/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt0/libcpmt_onecore/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt0 - onecore - true - - - - + + + + {5B4429AE-5436-4C16-A6D6-998D76182CF1} + false + + + + xmt0 + onecore + true + + diff --git a/stl/msbuild/stl_base/xmt1/libcpmt_kernel32/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt1/libcpmt_kernel32/libcpmt.nativeproj index 6266c565a18..c66f2134d67 100644 --- a/stl/msbuild/stl_base/xmt1/libcpmt_kernel32/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt1/libcpmt_kernel32/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt1 - kernel32 - true - - - - + + + + {C5C4581F-36C6-4327-BB54-6C1DFF52A60F} + false + + + + xmt1 + kernel32 + true + + diff --git a/stl/msbuild/stl_base/xmt1/libcpmt_onecore/libcpmt.nativeproj b/stl/msbuild/stl_base/xmt1/libcpmt_onecore/libcpmt.nativeproj index db93f3f15a1..d806c728cde 100644 --- a/stl/msbuild/stl_base/xmt1/libcpmt_onecore/libcpmt.nativeproj +++ b/stl/msbuild/stl_base/xmt1/libcpmt_onecore/libcpmt.nativeproj @@ -1,16 +1,18 @@ - - - - - xmt1 - onecore - true - - - - + + + + {4B156573-7D78-4FDA-B365-320A91AE8916} + false + + + + xmt1 + onecore + true + + diff --git a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj index 317f7eff453..a38414ef804 100644 --- a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {CD1E3105-704A-4D91-B49A-4D6E96546ED5} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj index 7abf5d633e4..7445371ae5e 100644 --- a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {ED7C0741-B3D2-4EAD-AA7E-BDF1B0948ECC} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj index 5354be3a0c6..6250a475250 100644 --- a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {5F6F2FF5-EFED-4CF7-8F44-810DB15F32CD} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj index 71825718ba0..1d04a54326f 100644 --- a/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/md/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {32352E48-0D6E-4BCA-935A-76DAFDD4239D} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_codecvt_ids/msvcp_codecvt_ids.settings.targets b/stl/msbuild/stl_codecvt_ids/msvcp_codecvt_ids.settings.targets index 6c1bf19ce64..eaf3de6fd1a 100644 --- a/stl/msbuild/stl_codecvt_ids/msvcp_codecvt_ids.settings.targets +++ b/stl/msbuild/stl_codecvt_ids/msvcp_codecvt_ids.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + DynamicLibrary + p_codecvt_ids @@ -11,8 +14,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - DYNLINK diff --git a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj index a07d3c95ef5..cc570ae8270 100644 --- a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_app/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {53AB0179-49FF-4620-9D42-45BD8ED71EA8} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj index 58411828c0d..fcad6e03f57 100644 --- a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_kernel32/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {9D9D5B21-5342-4726-AA4F-ACDF4D028F28} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj index 055e45710b7..90ee84d6455 100644 --- a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_netfx/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {D561DC89-A909-478B-8566-41640F9F5B53} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj index e603fe84374..6c98dc33517 100644 --- a/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj +++ b/stl/msbuild/stl_codecvt_ids/xmd/msvcp_codecvt_ids_onecore/msvcp_codecvt_ids.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {10C04DBD-4EB2-4590-BC8D-25DBA780905C} + false + + + + xmd + onecore + true + + diff --git a/stl/msbuild/stl_post/md/msvcp_post_app/msvcp_post.nativeproj b/stl/msbuild/stl_post/md/msvcp_post_app/msvcp_post.nativeproj index e5422b71165..343ac0feb7f 100644 --- a/stl/msbuild/stl_post/md/msvcp_post_app/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/md/msvcp_post_app/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - md - app - true - - - - + + + + {0E89DF6E-E7BA-44A1-841E-E6310F470211} + false + + + + md + app + true + + diff --git a/stl/msbuild/stl_post/md/msvcp_post_kernel32/msvcp_post.nativeproj b/stl/msbuild/stl_post/md/msvcp_post_kernel32/msvcp_post.nativeproj index 25cd54fef6f..7c1f17a2029 100644 --- a/stl/msbuild/stl_post/md/msvcp_post_kernel32/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/md/msvcp_post_kernel32/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {4BC58285-8BF8-4362-BE62-38CCBB34EA57} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_post/md/msvcp_post_netcore/msvcp_post.nativeproj b/stl/msbuild/stl_post/md/msvcp_post_netcore/msvcp_post.nativeproj index 25cd54fef6f..b2c42ef1d6c 100644 --- a/stl/msbuild/stl_post/md/msvcp_post_netcore/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/md/msvcp_post_netcore/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - md - kernel32 - true - - - - + + + + {F6BF440E-AA43-48D1-A7BF-53ED43ED2C6F} + false + + + + md + kernel32 + true + + diff --git a/stl/msbuild/stl_post/md/msvcp_post_netfx/msvcp_post.nativeproj b/stl/msbuild/stl_post/md/msvcp_post_netfx/msvcp_post.nativeproj index 1f893b27dac..fbc0fe20069 100644 --- a/stl/msbuild/stl_post/md/msvcp_post_netfx/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/md/msvcp_post_netfx/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - md - netfx - true - - - - + + + + {9EAC2409-0DE5-465D-BEB2-08DD9221CDC7} + false + + + + md + netfx + true + + diff --git a/stl/msbuild/stl_post/md/msvcp_post_onecore/msvcp_post.nativeproj b/stl/msbuild/stl_post/md/msvcp_post_onecore/msvcp_post.nativeproj index b9413c6e44c..b75e4cb3a1b 100644 --- a/stl/msbuild/stl_post/md/msvcp_post_onecore/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/md/msvcp_post_onecore/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - md - onecore - true - - - - + + + + {8A1D8A23-DBBA-4356-816E-344F7956D497} + false + + + + md + onecore + true + + diff --git a/stl/msbuild/stl_post/msvcp_post.settings.targets b/stl/msbuild/stl_post/msvcp_post.settings.targets index 4c1b2e3b27c..8ed7816451d 100644 --- a/stl/msbuild/stl_post/msvcp_post.settings.targets +++ b/stl/msbuild/stl_post/msvcp_post.settings.targets @@ -4,6 +4,9 @@ Copyright (c) Microsoft Corporation. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> + + StaticLibrary + p_post @@ -11,8 +14,6 @@ SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception true true true - - LIBRARY diff --git a/stl/msbuild/stl_post/xmd/msvcp_post_app/msvcp_post.nativeproj b/stl/msbuild/stl_post/xmd/msvcp_post_app/msvcp_post.nativeproj index c0359f2f7e5..41a6d6a5a54 100644 --- a/stl/msbuild/stl_post/xmd/msvcp_post_app/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/xmd/msvcp_post_app/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - app - true - - - - + + + + {687A5106-D6CE-4BC4-8BA1-27D84F895FF5} + false + + + + xmd + app + true + + diff --git a/stl/msbuild/stl_post/xmd/msvcp_post_kernel32/msvcp_post.nativeproj b/stl/msbuild/stl_post/xmd/msvcp_post_kernel32/msvcp_post.nativeproj index 3656ba523f4..16c5436d376 100644 --- a/stl/msbuild/stl_post/xmd/msvcp_post_kernel32/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/xmd/msvcp_post_kernel32/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {13998FA0-CBA7-4303-9212-879E17F69D53} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_post/xmd/msvcp_post_netcore/msvcp_post.nativeproj b/stl/msbuild/stl_post/xmd/msvcp_post_netcore/msvcp_post.nativeproj index 3656ba523f4..27de5bc5f5e 100644 --- a/stl/msbuild/stl_post/xmd/msvcp_post_netcore/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/xmd/msvcp_post_netcore/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - kernel32 - true - - - - + + + + {EC379541-9453-4884-9250-3CDBA73E2C10} + false + + + + xmd + kernel32 + true + + diff --git a/stl/msbuild/stl_post/xmd/msvcp_post_netfx/msvcp_post.nativeproj b/stl/msbuild/stl_post/xmd/msvcp_post_netfx/msvcp_post.nativeproj index c19d65f192c..2c0a3cc65ff 100644 --- a/stl/msbuild/stl_post/xmd/msvcp_post_netfx/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/xmd/msvcp_post_netfx/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - netfx - true - - - - + + + + {9FAAE4A7-D6CE-48C8-8B80-6EA96F508545} + false + + + + xmd + netfx + true + + diff --git a/stl/msbuild/stl_post/xmd/msvcp_post_onecore/msvcp_post.nativeproj b/stl/msbuild/stl_post/xmd/msvcp_post_onecore/msvcp_post.nativeproj index 472a8e1f63a..fd55615865a 100644 --- a/stl/msbuild/stl_post/xmd/msvcp_post_onecore/msvcp_post.nativeproj +++ b/stl/msbuild/stl_post/xmd/msvcp_post_onecore/msvcp_post.nativeproj @@ -1,16 +1,18 @@ - - - - - xmd - onecore - true - - - - + + + + {8DA22F7E-CE13-4885-AD01-D97B180E815C} + false + + + + xmd + onecore + true + + From 4751057c3c29ff6bfb65940f6812e37ace8dc598 Mon Sep 17 00:00:00 2001 From: Casey Carter Date: Fri, 29 Sep 2023 09:45:22 -0700 Subject: [PATCH 05/25] Add ASAN coverage for all STL tests (#4052) * Teach the test runner to parse runpl tags. Also teach our compiler option parser about `-fsanitize=address,undefined`. * Add ASAN configs to test matrices, tell the validator that `.lst` files may be tabby now. * Update libc++ expected results. The clang config is now `:2`, `:1` is cl with ASAN enabled. * Skip libc++ `operator new` tests that ASan doesn't like, and `basic_string::max_size` test that ASan doesn't like. * Avoid VSO-1875597 in `std/strings/string.conversions/stol.pass.cpp` * Tell `P0881R7_stacktrace` that we `HAS_DEBUG_INFO` when building with ASan enabled. * Create `fast_no_asan_matrix` to avoid VSO-1886547 * In `Dev11_1158803_regex_thread_safety` and `Dev10_814245_regex_character_class_crash`, `regex_match` seems to leak memory with ASAN enabled; OOMs on x86 only. * Add new `asan-pipeline.yml` entry point for Azure pipelines and properly plumb `benchmarkBuildOutputLocationVar` through `native-build-test.yml` --- azure-devops/asan-pipeline.yml | 39 ++++++ azure-devops/cross-build.yml | 2 + azure-devops/native-build-test.yml | 7 + azure-devops/run-tests.yml | 5 +- tests/CMakeLists.txt | 6 + tests/libcxx/expected_results.txt | 129 ++++++++++++++++-- tests/libcxx/usual_matrix.lst | 3 +- .../env.lst | 2 +- .../env.lst | 4 +- .../env.lst | 4 +- .../Dev11_1158803_regex_thread_safety/env.lst | 2 +- .../env.lst | 4 +- .../env.lst | 4 +- .../GH_002558_format_presetPadding/env.lst | 15 +- .../tests/GH_002711_Zc_alignedNew-/env.lst | 4 +- tests/std/tests/P0067R5_charconv/env.lst | 2 +- tests/std/tests/P0088R3_variant/env.lst | 19 ++- .../tests/P0288R9_move_only_function/env.lst | 4 +- .../env.lst | 2 +- .../env.lst | 4 +- .../env.lst | 4 +- .../env.lst | 16 ++- .../P0645R10_text_formatting_utf8/env.lst | 2 +- tests/std/tests/P0811R3_midpoint_lerp/env.lst | 4 +- tests/std/tests/P0881R7_stacktrace/env.lst | 6 +- tests/std/tests/P0881R7_stacktrace/test.cpp | 5 + tests/std/tests/P0912R5_coroutine/env.lst | 16 +++ .../env.lst | 23 ++-- tests/std/tests/P1614R2_spaceship/env.lst | 4 +- .../tests/P2093R14_formatted_output/env.lst | 4 +- .../env.lst | 15 +- .../env.lst | 2 +- tests/std/tests/P2321R2_views_zip/env.lst | 8 +- .../tests/P2321R2_views_zip_transform/env.lst | 8 +- .../P2465R3_standard_library_modules/env.lst | 26 ++-- .../env.lst | 4 - .../env.lst | 16 +-- .../VSO_0000000_vector_algorithms/env.lst | 4 +- .../VSO_0157762_feature_test_macros/env.lst | 1 + tests/std/tests/VSO_0226079_mutex/env.lst | 4 +- .../VSO_0971246_legacy_await_headers/env.lst | 13 +- tests/std/tests/char8_t_17_matrix.lst | 36 +---- tests/std/tests/char8_t_impure_matrix.lst | 21 ++- tests/std/tests/char8_t_matrix.lst | 37 +---- tests/std/tests/concepts_20_matrix.lst | 19 ++- tests/std/tests/concepts_latest_matrix.lst | 19 ++- tests/std/tests/eha_matrix.lst | 13 +- tests/std/tests/fast_matrix.lst | 3 + tests/std/tests/fast_no_asan_matrix.lst | 10 ++ .../std/tests/floating_point_model_matrix.lst | 39 +++--- tests/std/tests/impure_matrix.lst | 19 ++- tests/std/tests/prefix.lst | 2 +- tests/std/tests/strict_concepts_20_matrix.lst | 19 ++- .../tests/strict_concepts_latest_matrix.lst | 19 ++- tests/std/tests/usual_17_matrix.lst | 19 ++- tests/std/tests/usual_20_matrix.lst | 15 +- tests/std/tests/usual_latest_matrix.lst | 15 +- tests/std/tests/usual_matrix.lst | 17 +++ tests/tr1/env.lst | 16 +++ tests/tr1/env_minus_md_idl.lst | 13 ++ tests/tr1/env_minus_pure.lst | 16 ++- tests/tr1/env_single.lst | 5 +- tests/tr1/prefix.lst | 2 +- tests/tr1/tests/cvt/env.lst | 2 +- tests/universal_prefix.lst | 2 +- tests/utils/stl/test/file_parsing.py | 27 +++- tests/utils/stl/test/params.py | 34 +++++ tests/utils/stl/test/tests.py | 20 ++- tools/validate/validate.cpp | 9 +- 69 files changed, 689 insertions(+), 225 deletions(-) create mode 100644 azure-devops/asan-pipeline.yml create mode 100644 tests/std/tests/fast_no_asan_matrix.lst diff --git a/azure-devops/asan-pipeline.yml b/azure-devops/asan-pipeline.yml new file mode 100644 index 00000000000..6444e800205 --- /dev/null +++ b/azure-devops/asan-pipeline.yml @@ -0,0 +1,39 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# Build STL targeting x86 and x64, and run extra ASan testing + +variables: + tmpDir: 'D:\Temp' + buildOutputLocation: 'D:\build' + # Restrict to "stlasan" test + testSelection: '-R stlasan' + +pool: + name: 'StlBuild-2023-09-14T1251-Pool' + demands: EnableSpotVM -equals true + +pr: none + +stages: + - stage: Build_And_Test_x64 + displayName: 'Build and Test' + jobs: + - template: native-build-test.yml + parameters: + targetPlatform: x64 + vsDevCmdArch: amd64 + benchmarkBuildOutputLocationVar: '' + testSelection: ${{ variables.testSelection }} + + - stage: Build_And_Test_x86 + displayName: 'Build and Test' + jobs: + - template: native-build-test.yml + parameters: + targetPlatform: x86 + vsDevCmdArch: x86 + benchmarkBuildOutputLocationVar: '' + testSelection: ${{ variables.testSelection }} + + # no coverage for ARM and ARM64 diff --git a/azure-devops/cross-build.yml b/azure-devops/cross-build.yml index 0649dd53b57..11feb2e7e7d 100644 --- a/azure-devops/cross-build.yml +++ b/azure-devops/cross-build.yml @@ -49,3 +49,5 @@ jobs: targetPlatform: ${{ parameters.targetPlatform }} targetArch: ${{ parameters.vsDevCmdArch }} displayName: 'Build Tests' + # Exclude "stlasan" test (we don't yet support ASAN on ARM or ARM64) + testSelection: '-E stlasan' diff --git a/azure-devops/native-build-test.yml b/azure-devops/native-build-test.yml index f410386b378..ec1f790c55f 100644 --- a/azure-devops/native-build-test.yml +++ b/azure-devops/native-build-test.yml @@ -15,6 +15,11 @@ parameters: - name: numShards type: number default: 8 + # Parameters to pass to ctest to select the test(s) to run +- name: testSelection + type: string + # Exclude "stlasan" test by default + default: '-E stlasan' jobs: - job: '${{ parameters.targetPlatform }}' variables: @@ -38,8 +43,10 @@ jobs: targetPlatform: ${{ parameters.targetPlatform }} targetArch: ${{ parameters.vsDevCmdArch }} hostArch: ${{ parameters.vsDevCmdArch }} + benchmarkBuildOutputLocationVar: ${{ parameters.benchmarkBuildOutputLocationVar }} - template: run-tests.yml parameters: hostArch: ${{ parameters.vsDevCmdArch }} targetPlatform: ${{ parameters.targetPlatform }} targetArch: ${{ parameters.vsDevCmdArch }} + testSelection: ${{ parameters.testSelection }} diff --git a/azure-devops/run-tests.yml b/azure-devops/run-tests.yml index 9112bfee35f..acdf481347a 100644 --- a/azure-devops/run-tests.yml +++ b/azure-devops/run-tests.yml @@ -14,6 +14,9 @@ parameters: - name: displayName type: string default: 'Run Tests' + # Parameters to pass to ctest to select the test(s) to run +- name: testSelection + type: string steps: - task: CmdLine@2 displayName: ${{ parameters.displayName }} @@ -24,7 +27,7 @@ steps: script: | call "%ProgramFiles%\Microsoft Visual Studio\2022\Preview\Common7\Tools\VsDevCmd.bat" ^ -host_arch=${{ parameters.hostArch }} -arch=${{ parameters.targetArch }} -no_logo - ctest -V + ctest -V ${{ parameters.testSelection }} env: { TMP: $(tmpDir), TEMP: $(tmpDir) } - task: PublishTestResults@2 displayName: 'Publish Tests' diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 6a0b6858af1..ac3bc546d1e 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -32,6 +32,12 @@ endif() get_property(STL_LIT_TEST_DIRS GLOBAL PROPERTY STL_LIT_TEST_DIRS) list(APPEND STL_LIT_COMMAND "${STL_LIT_OUTPUT}" "${LIT_FLAGS}" + "-D" "notags=ASAN" "${STL_LIT_TEST_DIRS}") +list(APPEND STLASAN_LIT_COMMAND "${STL_LIT_OUTPUT}" + "${LIT_FLAGS}" + "-D" "tags=ASAN" + "${STL_LIT_TEST_DIRS}") add_test(NAME stl COMMAND ${Python_EXECUTABLE} ${STL_LIT_COMMAND} COMMAND_EXPAND_LISTS) +add_test(NAME stlasan COMMAND ${Python_EXECUTABLE} ${STLASAN_LIT_COMMAND} COMMAND_EXPAND_LISTS) diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 5efce3bf46a..94e0a030e70 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -322,6 +322,25 @@ std/utilities/tuple/tuple.tuple/tuple.apply/apply_large_arity.pass.cpp SKIPPED std/utilities/tuple/tuple.tuple/tuple.cnstr/recursion_depth.pass.cpp SKIPPED +# *** ASAN FAILURES *** +# ASAN runtime warns about an overlarge allocation and panics when it should throw bad_alloc instead +# (VSO-1854252, VSO-1854240, VSO-1854255, VSO-1854247, VSO-1854256) +std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.single/new.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t.pass.cpp:1 FAIL +std/strings/basic.string/string.capacity/max_size.pass.cpp:1 FAIL + +# ASAN runtime warns about an overlarge allocation and doesn't call new_handler (VSO-1854235, VSO-1854568, VSO-1854400, VSO-1854248) +std/language.support/support.dynamic/new.delete/new.delete.array/new_align_val_t_nothrow.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.single/new_nothrow.pass.cpp:1 FAIL +std/language.support/support.dynamic/new.delete/new.delete.single/new_align_val_t_nothrow.pass.cpp:1 FAIL + +# ASAN runtime intercepts `strtol` and breaks LWG-2009 (VSO-1875597) +std/strings/string.conversions/stol.pass.cpp:1 FAIL + + # *** MISSING STL FEATURES *** # Missing mbrtoc8 and c8rtomb std/depr/depr.c.headers/uchar_h.compile.pass.cpp FAIL @@ -376,6 +395,7 @@ std/atomics/atomics.types.generic/copy_semantics_traits.pass.cpp FAIL # *** C1XX COMPILER BUGS *** # DevCom-409222 "Constructing rvalue reference from non-reference-related lvalue reference" 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" std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort.pass.cpp:0 FAIL @@ -383,32 +403,46 @@ std/algorithms/alg.sorting/alg.sort/partial.sort/partial_sort_comp.pass.cpp:0 FA # DevCom-1436243 constexpr new initialized array std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset_self.pass.cpp:0 FAIL +std/utilities/smartptr/unique.ptr/unique.ptr.class/unique.ptr.modifiers/reset_self.pass.cpp:1 FAIL std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp:0 FAIL +std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.array.pass.cpp:1 FAIL # DevCom-10138792: C4455 'operator ""s': literal suffix identifiers that do not start with an underscore are reserved std/strings/basic.string.literals/noexcept.compile.pass.cpp:0 FAIL +std/strings/basic.string.literals/noexcept.compile.pass.cpp:1 FAIL # DevCom-1626139 "compile-time NaN comparison" std/iterators/predef.iterators/reverse.iterators/reverse.iter.cmp/three-way.pass.cpp:0 FAIL +std/iterators/predef.iterators/reverse.iterators/reverse.iter.cmp/three-way.pass.cpp:1 FAIL std/library/description/conventions/expos.only.func/synth_three_way.pass.cpp:0 FAIL +std/library/description/conventions/expos.only.func/synth_three_way.pass.cpp:1 FAIL std/utilities/function.objects/comparisons/compare_three_way.pass.cpp:0 FAIL +std/utilities/function.objects/comparisons/compare_three_way.pass.cpp:1 FAIL std/utilities/tuple/tuple.tuple/tuple.rel/three_way.pass.cpp:0 FAIL +std/utilities/tuple/tuple.tuple/tuple.rel/three_way.pass.cpp:1 FAIL std/utilities/utility/pairs/pairs.spec/three_way_comparison.pass.cpp:0 FAIL +std/utilities/utility/pairs/pairs.spec/three_way_comparison.pass.cpp:1 FAIL std/utilities/variant/variant.relops/three_way.pass.cpp:0 FAIL +std/utilities/variant/variant.relops/three_way.pass.cpp:1 FAIL # DevCom-1626727: bogus "failure was caused by a conversion from void* to a pointer-to-object type" for conversion to void std/algorithms/robust_re_difference_type.compile.pass.cpp:0 FAIL +std/algorithms/robust_re_difference_type.compile.pass.cpp:1 FAIL # DevCom-1638496: C1XX doesn't properly reject int <=> unsigned std/language.support/cmp/cmp.concept/three_way_comparable_with.compile.pass.cpp:0 FAIL +std/language.support/cmp/cmp.concept/three_way_comparable_with.compile.pass.cpp:1 FAIL std/language.support/cmp/cmp.result/compare_three_way_result.compile.pass.cpp:0 FAIL +std/language.support/cmp/cmp.result/compare_three_way_result.compile.pass.cpp:1 FAIL std/utilities/tuple/tuple.tuple/tuple.rel/three_way.pass.cpp:0 FAIL +std/utilities/tuple/tuple.tuple/tuple.rel/three_way.pass.cpp:1 FAIL # DevCom-1638563: icky static analysis false positive std/language.support/support.coroutines/end.to.end/go.pass.cpp:0 FAIL # DevCom-10026599: conditional expression has two different types std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp:0 FAIL +std/concepts/concepts.compare/concept.equalitycomparable/equality_comparable_with.compile.pass.cpp:1 FAIL # DevCom-10284753: Overload resolution is sometimes wrong for templated classes whose template argument are cv void std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type.pass.cpp SKIPPED @@ -416,22 +450,22 @@ std/utilities/function.objects/func.wrap/func.wrap.func/noncopyable_return_type. # *** CLANG COMPILER BUGS *** # LLVM-46207 Clang's tgmath.h interferes with the UCRT's tgmath.h -std/depr/depr.c.headers/tgmath_h.pass.cpp:1 FAIL +std/depr/depr.c.headers/tgmath_h.pass.cpp:2 FAIL # *** CLANG ISSUES, NOT YET ANALYZED *** # Clang doesn't enable sized deallocation by default. Should we add -fsized-deallocation or do something else? -std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp:1 SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp:1 SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.pass.cpp:1 SKIPPED -std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp:1 SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_fsizeddeallocation.pass.cpp:2 SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array14.pass.cpp:2 SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.pass.cpp:2 SKIPPED +std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp:2 SKIPPED # Not analyzed. Clang apparently defines platform macros differently from C1XX. -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 FAIL # Not analyzed. Possibly C++20 equality operator rewrite issues. -std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp:1 FAIL -std/utilities/expected/expected.void/equality/equality.other_expected.pass.cpp:1 FAIL +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 # *** STL BUGS *** @@ -513,7 +547,9 @@ std/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp # OS-29877133 "LDBL_DECIMAL_DIG missing from " std/depr/depr.c.headers/float_h.pass.cpp:0 FAIL +std/depr/depr.c.headers/float_h.pass.cpp:1 FAIL std/language.support/support.limits/c.limits/cfloat.pass.cpp:0 FAIL +std/language.support/support.limits/c.limits/cfloat.pass.cpp:1 FAIL # *** LIKELY BOGUS TESTS *** @@ -606,8 +642,11 @@ std/containers/container.requirements/container.requirements.general/allocator_m # Tests emit warning C4244: 'argument': conversion from 'T' to 'const std::complex::_Ty', possible loss of data std/numerics/complex.number/cmplx.over/conj.pass.cpp:0 FAIL +std/numerics/complex.number/cmplx.over/conj.pass.cpp:1 FAIL std/numerics/complex.number/cmplx.over/pow.pass.cpp:0 FAIL +std/numerics/complex.number/cmplx.over/pow.pass.cpp:1 FAIL std/numerics/complex.number/cmplx.over/proj.pass.cpp:0 FAIL +std/numerics/complex.number/cmplx.over/proj.pass.cpp:1 FAIL # Assertion failed: c == NaN || c == non_zero_nan # Testing input values outside the range of [complex.value.ops]/9 @@ -683,6 +722,7 @@ std/containers/sequences/vector/vector.cons/assign_copy.pass.cpp FAIL # LIT's ADDITIONAL_COMPILE_FLAGS is problematic std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp:0 FAIL +std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp:1 FAIL std/utilities/format/format.functions/escaped_output.ascii.pass.cpp SKIPPED std/utilities/meta/meta.unary/dependent_return_type.compile.pass.cpp SKIPPED std/utilities/variant/variant.variant/implicit_ctad.pass.cpp SKIPPED @@ -702,23 +742,28 @@ std/algorithms/alg.modifying.operations/alg.partitions/ranges_partition_copy.pas std/algorithms/alg.modifying.operations/alg.remove/ranges.remove.pass.cpp FAIL std/algorithms/alg.modifying.operations/alg.remove/ranges.remove_if.pass.cpp FAIL std/algorithms/alg.modifying.operations/alg.replace/ranges.replace.pass.cpp:0 FAIL +std/algorithms/alg.modifying.operations/alg.replace/ranges.replace.pass.cpp:1 FAIL std/algorithms/alg.modifying.operations/alg.rotate/ranges.rotate_copy.pass.cpp FAIL std/algorithms/alg.modifying.operations/alg.swap/ranges.swap_ranges.pass.cpp FAIL std/algorithms/alg.modifying.operations/alg.transform/ranges.transform.pass.cpp:0 FAIL +std/algorithms/alg.modifying.operations/alg.transform/ranges.transform.pass.cpp:1 FAIL std/algorithms/alg.modifying.operations/alg.unique/ranges_unique_copy.pass.cpp FAIL # warning C5101: use of preprocessor directive in function-like macro argument list is undefined behavior std/time/time.syn/formatter.year_month.pass.cpp:0 FAIL +std/time/time.syn/formatter.year_month.pass.cpp:1 FAIL std/time/time.syn/formatter.year_month_day_last.pass.cpp:0 FAIL +std/time/time.syn/formatter.year_month_day_last.pass.cpp:1 FAIL std/time/time.syn/formatter.year_month_weekday.pass.cpp:0 FAIL +std/time/time.syn/formatter.year_month_weekday.pass.cpp:1 FAIL # unused-variable warning std/numerics/rand/rand.device/ctor.pass.cpp FAIL std/thread/thread.mutex/thread.lock/thread.lock.scoped/mutex.pass.cpp FAIL -std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp:1 FAIL +std/thread/thread.mutex/thread.mutex.requirements/thread.shared_mutex.requirements/thread.shared_mutex.class/default.pass.cpp:2 FAIL # This test assumes that array is not const-default-constructible. -std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp:1 FAIL +std/concepts/concepts.lang/concept.default.init/default_initializable.compile.pass.cpp:2 FAIL # *** LIKELY STL BUGS *** @@ -812,7 +857,9 @@ std/thread/futures/futures.promise/set_rvalue.pass.cpp FAIL # Possible STL bugs in pair and tuple. std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp:0 FAIL +std/utilities/tuple/tuple.tuple/tuple.cnstr/PR23256_constrain_UTypes_ctor.pass.cpp:1 FAIL std/utilities/tuple/tuple.tuple/tuple.cnstr/PR31384.pass.cpp:0 FAIL +std/utilities/tuple/tuple.tuple/tuple.cnstr/PR31384.pass.cpp:1 FAIL # Bugs/questionable choices in codecvt, which we probably will not fix since # (1) they are deprecated, and (2) we don't want to break existing users. @@ -826,13 +873,17 @@ std/utilities/format/format.formatter/format.parse.ctx/next_arg_id.pass.cpp FAIL std/time/time.syn/formatter.month_day_last.pass.cpp FAIL # Likely STL bug in `join_view::_Iterator`: constexpr weirdness -std/ranges/range.adaptors/range.join.view/end.pass.cpp:1 FAIL +std/ranges/range.adaptors/range.join.view/end.pass.cpp:2 FAIL std/ranges/range.adaptors/range.join.view/iterator/decrement.pass.cpp:0 FAIL +std/ranges/range.adaptors/range.join.view/iterator/decrement.pass.cpp:1 FAIL std/ranges/range.adaptors/range.join.view/iterator/increment.pass.cpp:0 FAIL +std/ranges/range.adaptors/range.join.view/iterator/increment.pass.cpp:1 FAIL std/ranges/range.adaptors/range.join.view/iterator/iter.swap.pass.cpp:0 FAIL +std/ranges/range.adaptors/range.join.view/iterator/iter.swap.pass.cpp:1 FAIL std/ranges/range.adaptors/range.join.view/iterator/star.pass.cpp:0 FAIL -std/ranges/range.adaptors/range.join.view/sentinel/ctor.parent.pass.cpp:1 FAIL -std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp:1 FAIL +std/ranges/range.adaptors/range.join.view/iterator/star.pass.cpp:1 FAIL +std/ranges/range.adaptors/range.join.view/sentinel/ctor.parent.pass.cpp:2 FAIL +std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp:2 FAIL # Our monotonic_buffer_resource takes "user" space for metadata, which it probably should not do. std/utilities/utility/mem.res/mem.res.monotonic.buffer/mem.res.monotonic.buffer.mem/allocate_with_initial_size.pass.cpp FAIL @@ -863,6 +914,7 @@ std/containers/unord/unord.map/unord.map.cnstr/deduct_const.pass.cpp FAIL std/containers/unord/unord.multimap/unord.multimap.cnstr/deduct.pass.cpp FAIL std/containers/unord/unord.multimap/unord.multimap.cnstr/deduct_const.pass.cpp FAIL std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp:0 FAIL +std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp:1 FAIL # Not analyzed. Frequent timeouts std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp SKIPPED @@ -875,6 +927,7 @@ std/input.output/filesystems/class.path/path.member/path.charconv.pass.cpp FAIL # Not analyzed. Possibly C1XX constexpr bug. std/utilities/function.objects/func.invoke/invoke_constexpr.pass.cpp:0 FAIL +std/utilities/function.objects/func.invoke/invoke_constexpr.pass.cpp:1 FAIL # Not analyzed. Failing for "[a[.ch.]z]". std/re/re.alg/re.alg.match/awk.locale.pass.cpp FAIL @@ -902,7 +955,7 @@ std/containers/sequences/vector/vector.cons/deduct.pass.cpp FAIL std/iterators/iterator.primitives/iterator.operations/advance.pass.cpp SKIPPED # Not analyzed. Maybe Clang over-eagerly instantiating noexcept-specifier? -std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp:1 SKIPPED +std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp:2 SKIPPED # Not analyzed. Assertion failed: std::abs((kurtosis - x_kurtosis) / x_kurtosis) < VARIOUS_VALUES std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.PR44847.pass.cpp FAIL @@ -933,12 +986,17 @@ std/language.support/support.limits/limits/numeric.limits.members/tinyness_befor # Not analyzed. the test fails on x64 but passes on x86 std/containers/associative/map/map.access/iterator.pass.cpp:0 SKIPPED +std/containers/associative/map/map.access/iterator.pass.cpp:1 SKIPPED std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/sentinel.pass.cpp:0 SKIPPED +std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.-/sentinel.pass.cpp:1 SKIPPED std/algorithms/alg.modifying.operations/alg.random.shuffle/ranges_shuffle.pass.cpp:0 SKIPPED +std/algorithms/alg.modifying.operations/alg.random.shuffle/ranges_shuffle.pass.cpp:1 SKIPPED # Not analyzed. the test fails on x86 but passes on x64 std/algorithms/alg.sorting/alg.set.operations/includes/ranges_includes.pass.cpp:0 SKIPPED +std/algorithms/alg.sorting/alg.set.operations/includes/ranges_includes.pass.cpp:1 SKIPPED std/algorithms/alg.modifying.operations/alg.unique/ranges_unique.pass.cpp:0 SKIPPED +std/algorithms/alg.modifying.operations/alg.unique/ranges_unique.pass.cpp:1 SKIPPED # Not analyzed. These tests are marked `XFAIL: msvc`, citing DevCom-1660844. std/localization/locale.categories/category.numeric/locale.nm.put/facet.num.put.members/put_long_double.hex.pass.cpp SKIPPED @@ -953,12 +1011,18 @@ std/algorithms/alg.modifying.operations/alg.rotate/ranges_rotate.pass.cpp FAIL std/algorithms/alg.nonmodifying/alg.all_of/ranges.all_of.pass.cpp FAIL std/algorithms/alg.nonmodifying/alg.any_of/ranges.any_of.pass.cpp FAIL std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.equal/ranges.equal.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/alg.find.end/ranges.find_end.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.find.end/ranges.find_end.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each_n.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.foreach/ranges.for_each_n.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/alg.none_of/ranges.none_of.pass.cpp FAIL std/algorithms/alg.nonmodifying/alg.search/ranges.search.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.search/ranges.search.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/alg.search/ranges.search_n.pass.cpp:0 FAIL +std/algorithms/alg.nonmodifying/alg.search/ranges.search_n.pass.cpp:1 FAIL std/algorithms/alg.nonmodifying/mismatch/ranges_mismatch.pass.cpp FAIL std/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp FAIL std/algorithms/alg.sorting/alg.heap.operations/make.heap/ranges_make_heap.pass.cpp FAIL @@ -970,36 +1034,56 @@ std/algorithms/alg.sorting/alg.merge/ranges_merge.pass.cpp FAIL std/algorithms/alg.sorting/alg.min.max/requires_forward_iterator.fail.cpp FAIL std/algorithms/alg.sorting/alg.nth.element/ranges_nth_element.pass.cpp FAIL std/algorithms/alg.sorting/alg.partitions/ranges.is_partitioned.pass.cpp:0 FAIL +std/algorithms/alg.sorting/alg.partitions/ranges.is_partitioned.pass.cpp:1 FAIL std/algorithms/alg.sorting/alg.set.operations/set.difference/ranges_set_difference.pass.cpp FAIL std/algorithms/alg.sorting/alg.set.operations/set.intersection/ranges_set_intersection.pass.cpp FAIL std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/ranges_set_symmetric_difference.pass.cpp FAIL std/algorithms/alg.sorting/alg.set.operations/set.union/ranges_set_union.pass.cpp FAIL std/algorithms/alg.sorting/alg.sort/is.sorted/ranges.is_sorted.pass.cpp:0 FAIL +std/algorithms/alg.sorting/alg.sort/is.sorted/ranges.is_sorted.pass.cpp:1 FAIL std/algorithms/alg.sorting/alg.sort/is.sorted/ranges.is_sorted_until.pass.cpp:0 FAIL -std/algorithms/alg.sorting/alg.sort/partial.sort.copy/ranges_partial_sort_copy.pass.cpp:1 FAIL +std/algorithms/alg.sorting/alg.sort/is.sorted/ranges.is_sorted_until.pass.cpp:1 FAIL +std/algorithms/alg.sorting/alg.sort/partial.sort.copy/ranges_partial_sort_copy.pass.cpp:2 FAIL std/algorithms/algorithms.results/in_found_result.pass.cpp:0 FAIL +std/algorithms/algorithms.results/in_found_result.pass.cpp:1 FAIL std/algorithms/algorithms.results/min_max_result.pass.cpp:0 FAIL +std/algorithms/algorithms.results/min_max_result.pass.cpp:1 FAIL std/algorithms/ranges_robust_against_dangling.pass.cpp FAIL std/algorithms/robust_against_proxy_iterators_lifetime_bugs.pass.cpp FAIL std/containers/sequences/deque/abi.compile.pass.cpp FAIL std/containers/sequences/vector.bool/construct_iter_iter.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/construct_iter_iter.pass.cpp:1 FAIL std/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp:1 FAIL std/containers/sequences/vector.bool/construct_size.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/construct_size.pass.cpp:1 FAIL std/containers/sequences/vector.bool/construct_size_value.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/construct_size_value.pass.cpp:1 FAIL std/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/construct_size_value_alloc.pass.cpp:1 FAIL std/containers/sequences/vector.bool/emplace_back.pass.cpp FAIL std/containers/sequences/vector.bool/enabled_hash.pass.cpp FAIL std/containers/sequences/vector.bool/move.pass.cpp:0 FAIL +std/containers/sequences/vector.bool/move.pass.cpp:1 FAIL std/containers/sequences/vector.bool/vector_bool.pass.cpp FAIL std/containers/sequences/vector/iterators.pass.cpp:0 FAIL +std/containers/sequences/vector/iterators.pass.cpp:1 FAIL std/containers/sequences/vector/reverse_iterators.pass.cpp:0 FAIL +std/containers/sequences/vector/reverse_iterators.pass.cpp:1 FAIL std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp:1 FAIL std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp:1 FAIL std/containers/sequences/vector/vector.cons/construct_size.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.cons/construct_size.pass.cpp:1 FAIL std/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.cons/construct_size_value.pass.cpp:1 FAIL std/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.cons/construct_size_value_alloc.pass.cpp:1 FAIL std/containers/sequences/vector/vector.erasure/erase.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.erasure/erase.pass.cpp:1 FAIL std/containers/sequences/vector/vector.erasure/erase_if.pass.cpp:0 FAIL +std/containers/sequences/vector/vector.erasure/erase_if.pass.cpp:1 FAIL std/input.output/filesystems/fs.op.funcs/fs.op.remove_all/toctou.pass.cpp FAIL std/input.output/iostream.format/quoted.manip/quoted_traits.compile.pass.cpp FAIL std/iterators/iterator.requirements/iterator.concepts/iterator.concept.random.access/contiguous_iterator.compile.pass.cpp FAIL @@ -1026,6 +1110,7 @@ std/ranges/range.adaptors/range.filter/sentinel/base.pass.cpp FAIL std/ranges/range.adaptors/range.filter/sentinel/compare.pass.cpp FAIL std/ranges/range.adaptors/range.filter/sentinel/ctor.parent.pass.cpp FAIL std/ranges/range.adaptors/range.join.view/adaptor.pass.cpp:0 FAIL +std/ranges/range.adaptors/range.join.view/adaptor.pass.cpp:1 FAIL std/ranges/range.adaptors/range.lazy.split/adaptor.pass.cpp FAIL std/ranges/range.adaptors/range.lazy.split/base.pass.cpp FAIL std/ranges/range.adaptors/range.lazy.split/begin.pass.cpp FAIL @@ -1067,25 +1152,39 @@ std/utilities/format/format.functions/escaped_output.ascii.pass.cpp FAIL std/utilities/format/format.functions/locale-specific_form.pass.cpp FAIL std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/ctad.static.compile.pass.cpp FAIL std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp:0 FAIL +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp:1 FAIL std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp:0 FAIL +std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp:1 FAIL std/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.create/allocate_shared.array.unbounded.pass.cpp FAIL std/utilities/meta/meta.logical/conjunction.compile.pass.cpp FAIL std/utilities/meta/meta.logical/disjunction.compile.pass.cpp FAIL std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp:0 FAIL +std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_copy_assignable.pass.cpp:1 FAIL std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp:0 FAIL +std/utilities/meta/meta.unary/meta.unary.prop/is_nothrow_move_assignable.pass.cpp:1 FAIL std/utilities/tuple/tuple.tuple/tuple.cnstr/convert_const_move.pass.cpp FAIL # Not analyzed, probably MSVC constexpr issue(s) std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_erase/iter.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_erase/iter_iter.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_insert/iter_iter_iter.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_insert/iter_size_char.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_iter_iter.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_pointer_size.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_size_char.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_string.pass.cpp:1 FAIL std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp:0 FAIL +std/strings/basic.string/string.modifiers/string_replace/iter_iter_string_view.pass.cpp:1 FAIL # Not analyzed, possible path length issue. With a repo root of D:\GitHub\STL (13 characters), fails with: # "error RC2136 : missing '=' in EXSTYLE=" followed by "LINK : fatal error LNK1327: failure during running rc.exe" diff --git a/tests/libcxx/usual_matrix.lst b/tests/libcxx/usual_matrix.lst index 5604d27fed6..a6642320f3a 100644 --- a/tests/libcxx/usual_matrix.lst +++ b/tests/libcxx/usual_matrix.lst @@ -3,7 +3,8 @@ RUNALL_INCLUDE ..\universal_prefix.lst RUNALL_CROSSLIST -PM_CL="/EHsc /MTd /std:c++latest /permissive- /utf-8 /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" +* PM_CL="/EHsc /MTd /std:c++latest /permissive- /utf-8 /FImsvc_stdlib_force_include.h /wd4643 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" RUNALL_CROSSLIST PM_CL="/analyze:autolog- /Zc:preprocessor /wd6262" +ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call" diff --git a/tests/std/tests/Dev10_814245_regex_character_class_crash/env.lst b/tests/std/tests/Dev10_814245_regex_character_class_crash/env.lst index 288bc01fbe0..a5100294a4a 100644 --- a/tests/std/tests/Dev10_814245_regex_character_class_crash/env.lst +++ b/tests/std/tests/Dev10_814245_regex_character_class_crash/env.lst @@ -1,4 +1,4 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -RUNALL_INCLUDE ..\fast_matrix.lst +RUNALL_INCLUDE ..\fast_no_asan_matrix.lst # TRANSITION, VSO-1886547 diff --git a/tests/std/tests/Dev11_0493504_error_category_lifetime/env.lst b/tests/std/tests/Dev11_0493504_error_category_lifetime/env.lst index b31baf1dbb3..fc44e4dcd11 100644 --- a/tests/std/tests/Dev11_0493504_error_category_lifetime/env.lst +++ b/tests/std/tests/Dev11_0493504_error_category_lifetime/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_matrix.lst RUNALL_CROSSLIST -PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=0" -PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=1" +* PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=0" +* PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=1" diff --git a/tests/std/tests/Dev11_1127004_future_has_exceptions_0/env.lst b/tests/std/tests/Dev11_1127004_future_has_exceptions_0/env.lst index 6777856e825..ecb02a99c36 100644 --- a/tests/std/tests/Dev11_1127004_future_has_exceptions_0/env.lst +++ b/tests/std/tests/Dev11_1127004_future_has_exceptions_0/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\impure_matrix.lst RUNALL_CROSSLIST -PM_CL="/D_HAS_EXCEPTIONS=0" -PM_CL="/D_HAS_EXCEPTIONS=1" +* PM_CL="/D_HAS_EXCEPTIONS=0" +* PM_CL="/D_HAS_EXCEPTIONS=1" diff --git a/tests/std/tests/Dev11_1158803_regex_thread_safety/env.lst b/tests/std/tests/Dev11_1158803_regex_thread_safety/env.lst index 288bc01fbe0..a5100294a4a 100644 --- a/tests/std/tests/Dev11_1158803_regex_thread_safety/env.lst +++ b/tests/std/tests/Dev11_1158803_regex_thread_safety/env.lst @@ -1,4 +1,4 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -RUNALL_INCLUDE ..\fast_matrix.lst +RUNALL_INCLUDE ..\fast_no_asan_matrix.lst # TRANSITION, VSO-1886547 diff --git a/tests/std/tests/GH_000990_any_link_without_exceptions/env.lst b/tests/std/tests/GH_000990_any_link_without_exceptions/env.lst index a0e43315459..10ff82a4f2c 100644 --- a/tests/std/tests/GH_000990_any_link_without_exceptions/env.lst +++ b/tests/std/tests/GH_000990_any_link_without_exceptions/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_17_matrix.lst RUNALL_CROSSLIST -PM_CL="/D_HAS_EXCEPTIONS=0" -PM_CL="/D_HAS_EXCEPTIONS=1" +* PM_CL="/D_HAS_EXCEPTIONS=0" +* PM_CL="/D_HAS_EXCEPTIONS=1" diff --git a/tests/std/tests/GH_002431_byte_range_find_with_unreachable_sentinel/env.lst b/tests/std/tests/GH_002431_byte_range_find_with_unreachable_sentinel/env.lst index eab6d7b23e7..269bb574bcf 100644 --- a/tests/std/tests/GH_002431_byte_range_find_with_unreachable_sentinel/env.lst +++ b/tests/std/tests/GH_002431_byte_range_find_with_unreachable_sentinel/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\concepts_20_matrix.lst RUNALL_CROSSLIST -PM_CL="" -PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" +* PM_CL="" +* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" diff --git a/tests/std/tests/GH_002558_format_presetPadding/env.lst b/tests/std/tests/GH_002558_format_presetPadding/env.lst index f02e9c02448..0e31b4c2875 100644 --- a/tests/std/tests/GH_002558_format_presetPadding/env.lst +++ b/tests/std/tests/GH_002558_format_presetPadding/env.lst @@ -4,21 +4,34 @@ # This is concepts_20_matrix.lst + /presetPadding with clang configs disabled (clang-cl doesn't support /presetPadding) RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /presetPadding" +* PM_CL="/w14640 /Zc:threadSafeInit- /presetPadding" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" # PM_CL="/std:c++20 /permissive- /BE /c /EHsc /MD" diff --git a/tests/std/tests/GH_002711_Zc_alignedNew-/env.lst b/tests/std/tests/GH_002711_Zc_alignedNew-/env.lst index 1efced5bcfb..0d9c89bf17a 100644 --- a/tests/std/tests/GH_002711_Zc_alignedNew-/env.lst +++ b/tests/std/tests/GH_002711_Zc_alignedNew-/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\impure_matrix.lst RUNALL_CROSSLIST -PM_CL="/Zc:alignedNew-" -PM_CL="/J" +* PM_CL="/Zc:alignedNew-" +* PM_CL="/J" diff --git a/tests/std/tests/P0067R5_charconv/env.lst b/tests/std/tests/P0067R5_charconv/env.lst index 7194073a8e2..cebd06596b5 100644 --- a/tests/std/tests/P0067R5_charconv/env.lst +++ b/tests/std/tests/P0067R5_charconv/env.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\usual_17_matrix.lst RUNALL_CROSSLIST -PM_CL="/O2 /wd4793" +* PM_CL="/O2 /wd4793" diff --git a/tests/std/tests/P0088R3_variant/env.lst b/tests/std/tests/P0088R3_variant/env.lst index b2afc414f0e..4c863cb6339 100644 --- a/tests/std/tests/P0088R3_variant/env.lst +++ b/tests/std/tests/P0088R3_variant/env.lst @@ -7,25 +7,42 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE" +ASAN PM_CL="/EHsc /MD /std:c++17 /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/EHsc /MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" # With /clr /std:c++20, extreme compiler memory consumption causes test timeouts. PM_CL="/clr /MD /std:c++17 /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE" PM_CL="/clr /MDd /std:c++17 /DCONSTEXPR_NOTHROW /DTEST_PERMISSIVE" diff --git a/tests/std/tests/P0288R9_move_only_function/env.lst b/tests/std/tests/P0288R9_move_only_function/env.lst index 6b203c24288..5b8d3c50c12 100644 --- a/tests/std/tests/P0288R9_move_only_function/env.lst +++ b/tests/std/tests/P0288R9_move_only_function/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="/Zc:alignedNew-" -PM_CL="" +* PM_CL="/Zc:alignedNew-" +* PM_CL="" diff --git a/tests/std/tests/P0355R7_calendars_and_time_zones_formatting/env.lst b/tests/std/tests/P0355R7_calendars_and_time_zones_formatting/env.lst index 1f537b16e72..223468e5254 100644 --- a/tests/std/tests/P0355R7_calendars_and_time_zones_formatting/env.lst +++ b/tests/std/tests/P0355R7_calendars_and_time_zones_formatting/env.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\concepts_20_matrix.lst RUNALL_CROSSLIST -PM_CL="/utf-8" +* PM_CL="/utf-8" diff --git a/tests/std/tests/P0553R4_bit_rotating_and_counting_functions/env.lst b/tests/std/tests/P0553R4_bit_rotating_and_counting_functions/env.lst index ff4a6cc8f27..6d45b1c2a26 100644 --- a/tests/std/tests/P0553R4_bit_rotating_and_counting_functions/env.lst +++ b/tests/std/tests/P0553R4_bit_rotating_and_counting_functions/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_20_matrix.lst RUNALL_CROSSLIST -PM_CL="" -PM_CL="/arch:AVX2" +* PM_CL="" +* PM_CL="/arch:AVX2" diff --git a/tests/std/tests/P0556R3_bit_integral_power_of_two_operations/env.lst b/tests/std/tests/P0556R3_bit_integral_power_of_two_operations/env.lst index ff4a6cc8f27..6d45b1c2a26 100644 --- a/tests/std/tests/P0556R3_bit_integral_power_of_two_operations/env.lst +++ b/tests/std/tests/P0556R3_bit_integral_power_of_two_operations/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_20_matrix.lst RUNALL_CROSSLIST -PM_CL="" -PM_CL="/arch:AVX2" +* PM_CL="" +* PM_CL="/arch:AVX2" diff --git a/tests/std/tests/P0645R10_text_formatting_legacy_text_encoding/env.lst b/tests/std/tests/P0645R10_text_formatting_legacy_text_encoding/env.lst index adb6a326162..cd6097cbb95 100644 --- a/tests/std/tests/P0645R10_text_formatting_legacy_text_encoding/env.lst +++ b/tests/std/tests/P0645R10_text_formatting_legacy_text_encoding/env.lst @@ -6,24 +6,38 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /execution-charset:.932" +* PM_CL="/w14640 /Zc:threadSafeInit- /execution-charset:.932" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" # PM_CL="/std:c++20 /permissive- /BE /c /EHsc /MD" # PM_CL="/std:c++latest /permissive- /BE /c /EHsc /MTd" # PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++20 /permissive- /MD" # PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /permissive- /MTd /fp:strict" +# PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /permissive- /MT /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" diff --git a/tests/std/tests/P0645R10_text_formatting_utf8/env.lst b/tests/std/tests/P0645R10_text_formatting_utf8/env.lst index 1f537b16e72..223468e5254 100644 --- a/tests/std/tests/P0645R10_text_formatting_utf8/env.lst +++ b/tests/std/tests/P0645R10_text_formatting_utf8/env.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\concepts_20_matrix.lst RUNALL_CROSSLIST -PM_CL="/utf-8" +* PM_CL="/utf-8" diff --git a/tests/std/tests/P0811R3_midpoint_lerp/env.lst b/tests/std/tests/P0811R3_midpoint_lerp/env.lst index 5d2c55ad304..d707906cdd2 100644 --- a/tests/std/tests/P0811R3_midpoint_lerp/env.lst +++ b/tests/std/tests/P0811R3_midpoint_lerp/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\usual_20_matrix.lst RUNALL_CROSSLIST -PM_CL="/Od" -PM_CL="/O2" +* PM_CL="/Od" +* PM_CL="/O2" diff --git a/tests/std/tests/P0881R7_stacktrace/env.lst b/tests/std/tests/P0881R7_stacktrace/env.lst index 1349aaccb51..c6bc6d6453a 100644 --- a/tests/std/tests/P0881R7_stacktrace/env.lst +++ b/tests/std/tests/P0881R7_stacktrace/env.lst @@ -3,6 +3,6 @@ RUNALL_INCLUDE ..\usual_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="/Zi /DHAS_DEBUG_INFO" PM_LINK="/debug" -PM_CL="/DHAS_EXPORT" -PM_CL="" +* PM_CL="/Zi /DHAS_DEBUG_INFO" PM_LINK="/debug" +* PM_CL="/DHAS_EXPORT" +* PM_CL="" diff --git a/tests/std/tests/P0881R7_stacktrace/test.cpp b/tests/std/tests/P0881R7_stacktrace/test.cpp index 879d6bdcb82..17cf3864e2d 100644 --- a/tests/std/tests/P0881R7_stacktrace/test.cpp +++ b/tests/std/tests/P0881R7_stacktrace/test.cpp @@ -156,6 +156,11 @@ string to_string_using_to_string(const stacktrace& st) { return to_string(st) + "\n"; } +#if !defined(HAS_DEBUG_INFO) && defined(__SANITIZE_ADDRESS__) +// We always use /Zi with -fsanitize=address +#define HAS_DEBUG_INFO +#endif // ^^^ !defined(HAS_DEBUG_INFO) && defined(__SANITIZE_ADDRESS__) ^^^ + #if defined(HAS_DEBUG_INFO) || defined(HAS_EXPORT) #define HAS_NAMES #endif // ^^^ defined(HAS_DEBUG_INFO) || defined(HAS_EXPORT) ^^^ diff --git a/tests/std/tests/P0912R5_coroutine/env.lst b/tests/std/tests/P0912R5_coroutine/env.lst index 753a686fb03..1e214583dd8 100644 --- a/tests/std/tests/P0912R5_coroutine/env.lst +++ b/tests/std/tests/P0912R5_coroutine/env.lst @@ -4,21 +4,37 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST PM_CL="/EHsc /MD /await:strict /std:c++14" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /await:strict /std:c++14 /permissive-" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++14 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /await:strict /std:c++14 /permissive- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MTd /await:strict /std:c++14 /permissive- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /await:strict /std:c++14 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++14 /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /await:strict /std:c++17" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /await:strict /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /await:strict /std:c++17 /permissive- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MTd /await:strict /std:c++17 /permissive- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /await:strict /std:c++17 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MD /await:strict /std:c++17 /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++20 /permissive" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /std:c++20 /permissive- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MTd /std:c++20 /permissive- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++20 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /std:c++latest /permissive- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++20 /permissive-" diff --git a/tests/std/tests/P1502R1_standard_library_header_units/env.lst b/tests/std/tests/P1502R1_standard_library_header_units/env.lst index 4912f8d803c..16400cc2473 100644 --- a/tests/std/tests/P1502R1_standard_library_header_units/env.lst +++ b/tests/std/tests/P1502R1_standard_library_header_units/env.lst @@ -3,21 +3,20 @@ RUNALL_INCLUDE ..\..\..\universal_prefix.lst RUNALL_CROSSLIST -PM_CL="/w14365 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" +* PM_CL="/w14365 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /Zc:preprocessor" RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=20 /std:c++20" -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=23 /std:c++latest" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=20 /std:c++20" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=23 /std:c++latest" RUNALL_CROSSLIST -PM_CL="/Zc:preprocessor" +* PM_CL="/MD" +* PM_CL="/MDd" +* PM_CL="/MT" +* PM_CL="/MTd" RUNALL_CROSSLIST -PM_CL="/MD" -PM_CL="/MDd" -PM_CL="/MT" -PM_CL="/MTd" +* PM_CL="/DTEST_HEADER_UNITS /DTEST_TOPO_SORT" +* PM_CL="/DTEST_HEADER_UNITS" RUNALL_CROSSLIST -PM_CL="/DTEST_HEADER_UNITS /DTEST_TOPO_SORT" -PM_CL="/DTEST_HEADER_UNITS" -# RUNALL_CROSSLIST -# PM_CL="" +PM_CL="" +# ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug" # TRANSITION, DevCom-10439535 # PM_CL="/analyze:only /analyze:autolog-" # TRANSITION, works correctly but slowly # PM_CL="/BE" # TRANSITION, VSO-1232145 "EDG ICEs when consuming Standard Library Header Units" diff --git a/tests/std/tests/P1614R2_spaceship/env.lst b/tests/std/tests/P1614R2_spaceship/env.lst index 4729e39e31b..dd5d83e2a5c 100644 --- a/tests/std/tests/P1614R2_spaceship/env.lst +++ b/tests/std/tests/P1614R2_spaceship/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\concepts_20_matrix.lst RUNALL_CROSSLIST -PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=0" -PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=1" +* PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=0" +* PM_CL="/D_STL_OPTIMIZE_SYSTEM_ERROR_OPERATORS=1" diff --git a/tests/std/tests/P2093R14_formatted_output/env.lst b/tests/std/tests/P2093R14_formatted_output/env.lst index 0f108cca756..692ec9239e6 100644 --- a/tests/std/tests/P2093R14_formatted_output/env.lst +++ b/tests/std/tests/P2093R14_formatted_output/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\concepts_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="" -PM_CL="/utf-8" +* PM_CL="" +* PM_CL="/utf-8" diff --git a/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/env.lst b/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/env.lst index 3e3264e4bcc..bb35a7194ff 100644 --- a/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/env.lst +++ b/tests/std/tests/P2286R8_text_formatting_escaping_legacy_text_encoding/env.lst @@ -6,21 +6,34 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest /execution-charset:.932" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest /execution-charset:.932" RUNALL_CROSSLIST PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/MD /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MD /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/MD /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:wchar_t-" +ASAN PM_CL="/MDd /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MDd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/MDd /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive-" +ASAN PM_CL="/MT /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/MT /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /fp:strict" +ASAN PM_CL="/MTd /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MTd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive" +ASAN PM_CL="/MTd /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/MTd /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" # PM_CL="/permissive- /BE /c /MD" # PM_CL="/permissive- /BE /c /MTd" # PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /permissive- /MD" diff --git a/tests/std/tests/P2286R8_text_formatting_escaping_utf8/env.lst b/tests/std/tests/P2286R8_text_formatting_escaping_utf8/env.lst index 4ca6faed472..912c1f36f13 100644 --- a/tests/std/tests/P2286R8_text_formatting_escaping_utf8/env.lst +++ b/tests/std/tests/P2286R8_text_formatting_escaping_utf8/env.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\concepts_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="/utf-8" +* PM_CL="/utf-8" diff --git a/tests/std/tests/P2321R2_views_zip/env.lst b/tests/std/tests/P2321R2_views_zip/env.lst index 6e5f62c042f..d54f0331ce4 100644 --- a/tests/std/tests/P2321R2_views_zip/env.lst +++ b/tests/std/tests/P2321R2_views_zip/env.lst @@ -7,7 +7,7 @@ # functions have this requirement. RUNALL_INCLUDE ..\strict_concepts_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="/DTEST_INPUT" -PM_CL="/DTEST_FORWARD" -PM_CL="/DTEST_BIDIRECTIONAL" -PM_CL="/DTEST_RANDOM" +* PM_CL="/DTEST_INPUT" +* PM_CL="/DTEST_FORWARD" +* PM_CL="/DTEST_BIDIRECTIONAL" +* PM_CL="/DTEST_RANDOM" diff --git a/tests/std/tests/P2321R2_views_zip_transform/env.lst b/tests/std/tests/P2321R2_views_zip_transform/env.lst index dc4b2759c02..759f40d5a4b 100644 --- a/tests/std/tests/P2321R2_views_zip_transform/env.lst +++ b/tests/std/tests/P2321R2_views_zip_transform/env.lst @@ -7,7 +7,7 @@ # does not define an ADL overload for iter_move. RUNALL_INCLUDE ..\strict_concepts_latest_matrix.lst RUNALL_CROSSLIST -PM_CL="/DTEST_INPUT" -PM_CL="/DTEST_FORWARD" -PM_CL="/DTEST_BIDIRECTIONAL" -PM_CL="/DTEST_RANDOM" +* PM_CL="/DTEST_INPUT" +* PM_CL="/DTEST_FORWARD" +* PM_CL="/DTEST_BIDIRECTIONAL" +* PM_CL="/DTEST_RANDOM" diff --git a/tests/std/tests/P2465R3_standard_library_modules/env.lst b/tests/std/tests/P2465R3_standard_library_modules/env.lst index c399bd0ee5f..599e91697d3 100644 --- a/tests/std/tests/P2465R3_standard_library_modules/env.lst +++ b/tests/std/tests/P2465R3_standard_library_modules/env.lst @@ -3,17 +3,19 @@ RUNALL_INCLUDE ..\..\..\universal_prefix.lst RUNALL_CROSSLIST -PM_CL="/w14365 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" +* PM_CL="/w14365 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER /Zc:preprocessor" RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=20 /std:c++20" -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=23 /std:c++latest" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=20 /std:c++20" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /DTEST_STANDARD=23 /std:c++latest" RUNALL_CROSSLIST -PM_CL="/Zc:preprocessor" -RUNALL_CROSSLIST -PM_CL="/MD" -PM_CL="/MDd" -PM_CL="/MT" -PM_CL="/MTd" -PM_CL="/MDd /analyze:only /analyze:autolog-" -PM_CL="/MDd /GR- /D_HAS_STATIC_RTTI=0" -PM_CL="/MDd /utf-8" +* PM_CL="/MD" +* PM_CL="/MDd" +* PM_CL="/MT" +* PM_CL="/MTd" +* PM_CL="/MDd /analyze:only /analyze:autolog-" +* PM_CL="/MDd /GR- /D_HAS_STATIC_RTTI=0" +* PM_CL="/MDd /utf-8" +# TRANSITION, DevCom-10439535 +# RUNALL_CROSSLIST +# PM_CL="" +# ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/P2693R1_text_formatting_stacktrace/env.lst b/tests/std/tests/P2693R1_text_formatting_stacktrace/env.lst index d7beb961d25..18e2d7c71ec 100644 --- a/tests/std/tests/P2693R1_text_formatting_stacktrace/env.lst +++ b/tests/std/tests/P2693R1_text_formatting_stacktrace/env.lst @@ -2,7 +2,3 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception RUNALL_INCLUDE ..\concepts_latest_matrix.lst -RUNALL_CROSSLIST -PM_CL="/Zi /DHAS_DEBUG_INFO" PM_LINK="/debug" -PM_CL="/DHAS_EXPORT" -PM_CL="" diff --git a/tests/std/tests/VSO_0000000_any_calling_conventions/env.lst b/tests/std/tests/VSO_0000000_any_calling_conventions/env.lst index 81094452020..8d15df25176 100644 --- a/tests/std/tests/VSO_0000000_any_calling_conventions/env.lst +++ b/tests/std/tests/VSO_0000000_any_calling_conventions/env.lst @@ -3,12 +3,12 @@ RUNALL_INCLUDE ..\fast_matrix.lst RUNALL_CROSSLIST -CALLING_CONVENTION_A="/Gd" -CALLING_CONVENTION_A="/Gr" -CALLING_CONVENTION_A="/Gv" -CALLING_CONVENTION_A="/Gz" +* CALLING_CONVENTION_A="/Gd" +* CALLING_CONVENTION_A="/Gr" +* CALLING_CONVENTION_A="/Gv" +* CALLING_CONVENTION_A="/Gz" RUNALL_CROSSLIST -CALLING_CONVENTION_B="/Gd" -CALLING_CONVENTION_B="/Gr" -CALLING_CONVENTION_B="/Gv" -CALLING_CONVENTION_B="/Gz" +* CALLING_CONVENTION_B="/Gd" +* CALLING_CONVENTION_B="/Gr" +* CALLING_CONVENTION_B="/Gv" +* CALLING_CONVENTION_B="/Gz" diff --git a/tests/std/tests/VSO_0000000_vector_algorithms/env.lst b/tests/std/tests/VSO_0000000_vector_algorithms/env.lst index 2e61ef96b9c..7837a2e3283 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="" # Test default setting +* PM_CL="/D_USE_STD_VECTOR_ALGORITHMS=0" # Test escape hatch, see GH-1751 diff --git a/tests/std/tests/VSO_0157762_feature_test_macros/env.lst b/tests/std/tests/VSO_0157762_feature_test_macros/env.lst index 6dabb5c1e84..f498ae71be5 100644 --- a/tests/std/tests/VSO_0157762_feature_test_macros/env.lst +++ b/tests/std/tests/VSO_0157762_feature_test_macros/env.lst @@ -2,6 +2,7 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # The following lines are intended to match usual_matrix.lst but without /w14640 /Zc:threadSafeInit- and /Zc:noexceptTypes- +# ASAN configurations are also omitted since this is effectively a preprocessor-only test. RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST diff --git a/tests/std/tests/VSO_0226079_mutex/env.lst b/tests/std/tests/VSO_0226079_mutex/env.lst index 1fb3203d028..de7171f19ca 100644 --- a/tests/std/tests/VSO_0226079_mutex/env.lst +++ b/tests/std/tests/VSO_0226079_mutex/env.lst @@ -3,5 +3,5 @@ RUNALL_INCLUDE ..\impure_matrix.lst RUNALL_CROSSLIST -PM_CL="/D_ENABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" -PM_CL="" +* PM_CL="/D_ENABLE_CONSTEXPR_MUTEX_CONSTRUCTOR" +* PM_CL="" diff --git a/tests/std/tests/VSO_0971246_legacy_await_headers/env.lst b/tests/std/tests/VSO_0971246_legacy_await_headers/env.lst index ad91bfa4754..42cd9bd32fc 100644 --- a/tests/std/tests/VSO_0971246_legacy_await_headers/env.lst +++ b/tests/std/tests/VSO_0971246_legacy_await_headers/env.lst @@ -3,8 +3,11 @@ RUNALL_INCLUDE ..\prefix.lst RUNALL_CROSSLIST -PM_CL="/EHsc /MT /std:c++latest /permissive-" -PM_CL="/EHsc /MT /std:c++latest /permissive" -PM_CL="/EHsc /MT /std:c++latest /permissive- /await" -PM_CL="/EHsc /MT /std:c++latest /permissive /await" -PM_CL="/BE /c /EHsc /MD /std:c++latest /permissive-" +* PM_CL="/EHsc /MT /std:c++latest /permissive-" +* PM_CL="/EHsc /MT /std:c++latest /permissive" +* PM_CL="/EHsc /MT /std:c++latest /permissive- /await" +* PM_CL="/EHsc /MT /std:c++latest /permissive /await" +* PM_CL="/BE /c /EHsc /MD /std:c++latest /permissive-" +RUNALL_CROSSLIST +PM_CL="" +ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/char8_t_17_matrix.lst b/tests/std/tests/char8_t_17_matrix.lst index cfabb7ae85e..61262e29264 100644 --- a/tests/std/tests/char8_t_17_matrix.lst +++ b/tests/std/tests/char8_t_17_matrix.lst @@ -1,38 +1,6 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -# This is usual_17_matrix.lst, but with an additional `/std:c++17 /Zc:char8_t` configuration. - -RUNALL_INCLUDE .\prefix.lst -RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" -RUNALL_CROSSLIST -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:noexceptTypes-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /fp:except /Zc:preprocessor" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +RUNALL_INCLUDE .\usual_17_matrix.lst PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /Zc:char8_t" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" -PM_CL="/clr /MD /std:c++20" -PM_CL="/clr /MDd /std:c++20" -PM_CL="/BE /c /EHsc /MD /std:c++latest /permissive-" -PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive-" -PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive-" -PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++latest /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MDd /std:c++17" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MTd /std:c++latest /permissive- /fp:strict" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- /Zc:char8_t -fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/char8_t_impure_matrix.lst b/tests/std/tests/char8_t_impure_matrix.lst index f7c9462651c..8e2775df30d 100644 --- a/tests/std/tests/char8_t_impure_matrix.lst +++ b/tests/std/tests/char8_t_impure_matrix.lst @@ -6,27 +6,46 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14" +ASAN PM_CL="/EHsc /MD /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/EHsc /MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/EHsc /MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /permissive- /Zc:char8_t" +ASAN PM_CL="/EHsc /MDd /std:c++14 /permissive- /Zc:char8_t -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /Zc:char8_t" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- /Zc:char8_t -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++14" diff --git a/tests/std/tests/char8_t_matrix.lst b/tests/std/tests/char8_t_matrix.lst index 7795932f132..a5d2eceee4d 100644 --- a/tests/std/tests/char8_t_matrix.lst +++ b/tests/std/tests/char8_t_matrix.lst @@ -1,39 +1,8 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -# This is usual_matrix.lst, but with additional `/std:c++14 /Zc:char8_t` and `/std:c++17 /Zc:char8_t` configurations. - -RUNALL_INCLUDE .\prefix.lst -RUNALL_CROSSLIST -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- /Zc:noexceptTypes-" -PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /w14640 /Zc:threadSafeInit- /Zc:preprocessor" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /w14640 /Zc:threadSafeInit- /Zc:preprocessor" +RUNALL_INCLUDE .\usual_matrix.lst PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /permissive- /w14640 /Zc:threadSafeInit- /Zc:char8_t" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++14 /permissive- /w14640 /Zc:threadSafeInit- /Zc:char8_t -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /w14640 /Zc:threadSafeInit- /Zc:char8_t" -PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive /w14640 /Zc:threadSafeInit-" -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" -PM_CL="/clr /MD /std:c++20 /w14640 /Zc:threadSafeInit-" -PM_CL="/clr /MDd /std:c++20 /w14640 /Zc:threadSafeInit-" -PM_CL="/clr:pure /MD /std:c++14" -PM_CL="/clr:pure /MDd /std:c++14" -PM_CL="/BE /c /EHsc /MD /std:c++14 /w14640 /Zc:threadSafeInit-" -PM_CL="/BE /c /EHsc /MDd /std:c++17 /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/BE /c /EHsc /MT /std:c++20 /permissive- /w14640 /Zc:threadSafeInit-" -PM_CL="/BE /c /EHsc /MTd /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MD /std:c++14 /w14640 /Zc:threadSafeInit-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MDd /std:c++17 /w14640 /Zc:threadSafeInit-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++20 /permissive- /w14640 /Zc:threadSafeInit-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MTd /std:c++latest /permissive- /fp:strict /w14640 /Zc:threadSafeInit-" -PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /MT /std:c++latest /permissive- /fp:strict /w14640 /Zc:threadSafeInit- -fsanitize=undefined -fno-sanitize-recover=undefined" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- /w14640 /Zc:threadSafeInit- /Zc:char8_t -fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/concepts_20_matrix.lst b/tests/std/tests/concepts_20_matrix.lst index ea8806b97bb..03da2121ae6 100644 --- a/tests/std/tests/concepts_20_matrix.lst +++ b/tests/std/tests/concepts_20_matrix.lst @@ -6,25 +6,38 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" -# PM_CL="/std:c++20 /permissive- /BE /c /EHsc /MD" -# PM_CL="/std:c++latest /permissive- /BE /c /EHsc /MTd" +# PM_CL="/std:c++20 /permissive- /BE /c /EHsc /MD" # TRANSITION, GH-395 +# PM_CL="/std:c++latest /permissive- /BE /c /EHsc /MTd" # TRANSITION, GH-395 PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++20 /permissive- /MD" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /permissive- /MTd /fp:strict" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /permissive- /MT /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" diff --git a/tests/std/tests/concepts_latest_matrix.lst b/tests/std/tests/concepts_latest_matrix.lst index ecf410ca036..07c13e3bc8f 100644 --- a/tests/std/tests/concepts_latest_matrix.lst +++ b/tests/std/tests/concepts_latest_matrix.lst @@ -3,23 +3,36 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" RUNALL_CROSSLIST PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/MD /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MD /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/MD /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:wchar_t-" +ASAN PM_CL="/MDd /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MDd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/MDd /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive-" +ASAN PM_CL="/MT /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/MT /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /fp:strict" +ASAN PM_CL="/MTd /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MTd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive" +ASAN PM_CL="/MTd /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /analyze:only /analyze:autolog-" -# PM_CL="/permissive- /BE /c /MD" -# PM_CL="/permissive- /BE /c /MTd" +ASAN PM_CL="/MTd /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" +# PM_CL="/permissive- /BE /c /MD" # TRANSITION, GH-395 +# PM_CL="/permissive- /BE /c /MTd" # TRANSITION, GH-395 PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /permissive- /MD" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /permissive- /MTd /fp:strict" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /permissive- /MT /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" diff --git a/tests/std/tests/eha_matrix.lst b/tests/std/tests/eha_matrix.lst index cecb5b131a3..e4080270343 100644 --- a/tests/std/tests/eha_matrix.lst +++ b/tests/std/tests/eha_matrix.lst @@ -3,16 +3,27 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHa" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHa" RUNALL_CROSSLIST PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14" +ASAN PM_CL="/MD /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t-" +ASAN PM_CL="/MD /std:c++latest /permissive- /Zc:char8_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except" +ASAN PM_CL="/MDd /std:c++14 /fp:except -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict /Zc:noexceptTypes-" +ASAN PM_CL="/MTd /std:c++latest /permissive- /fp:strict /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/fast_matrix.lst b/tests/std/tests/fast_matrix.lst index ea19bd9ea37..844ce7ebae9 100644 --- a/tests/std/tests/fast_matrix.lst +++ b/tests/std/tests/fast_matrix.lst @@ -2,6 +2,9 @@ # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception # This is for tests that take a long time to execute, so run only one configuration. +# Keep synchronized with fast_no_asan_matrix.lst. + RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST PM_CL="/EHsc /MT /O2 /GL /std:c++latest /permissive- /analyze:autolog- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MT /O2 /GL /std:c++latest /permissive- /analyze:autolog- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/std/tests/fast_no_asan_matrix.lst b/tests/std/tests/fast_no_asan_matrix.lst new file mode 100644 index 00000000000..9ec63e83874 --- /dev/null +++ b/tests/std/tests/fast_no_asan_matrix.lst @@ -0,0 +1,10 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +# This is identical to fast_matrix, but without the ASAN config. +# TRANSITION, VSO-1886547 (Dev11_1158803_regex_thread_safety leaks memory with ASan) + +# This is for tests that take a long time to execute, so run only one configuration. +RUNALL_INCLUDE .\prefix.lst +RUNALL_CROSSLIST +PM_CL="/EHsc /MT /O2 /GL /std:c++latest /permissive- /analyze:autolog- /w14640 /Zc:threadSafeInit-" diff --git a/tests/std/tests/floating_point_model_matrix.lst b/tests/std/tests/floating_point_model_matrix.lst index 617600f52fe..551ad81e924 100644 --- a/tests/std/tests/floating_point_model_matrix.lst +++ b/tests/std/tests/floating_point_model_matrix.lst @@ -3,31 +3,32 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/FIfenv_prefix.hpp" +* PM_CL="/FIfenv_prefix.hpp /w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" +* PM_CL="" +* PM_CL="/arch:IA32" +* PM_CL="/arch:AVX2" +* PM_CL="/arch:VFPv4" +RUNALL_CROSSLIST +* PM_CL="/fp:strict /DFP_CONFIG_PRESET=1 /DTEST_FP_ROUNDING=1" +* PM_CL="/fp:precise /DFP_CONFIG_PRESET=2 /DTEST_FP_ROUNDING=1" +* PM_CL="/fp:precise /DFP_CONFIG_PRESET=2 /DTEST_FP_ROUNDING=0" +* PM_CL="/fp:fast /DFP_CONFIG_PRESET=3 /DTEST_FP_ROUNDING=0" +RUNALL_CROSSLIST +* PM_CL="/DWITH_FP_ABRUPT_UNDERFLOW=0" +* PM_CL="/DWITH_FP_ABRUPT_UNDERFLOW=1" PM_LINK="loosefpmath.obj" +RUNALL_CROSSLIST +* PM_CL="/DFP_CONTRACT_MODE=0 /clang:-ffp-contract=off" +* PM_CL="/DFP_CONTRACT_MODE=1 /clang:-ffp-contract=on" +* PM_CL="/DFP_CONTRACT_MODE=2 /clang:-ffp-contract=fast" RUNALL_CROSSLIST PM_CL="/Od /MDd" +ASAN PM_CL="/Od /MDd -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/O2 /MD /permissive-" +ASAN PM_CL="/O2 /MD /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/O2 /MT /GL" +ASAN PM_CL="/O2 /MT /GL -fsanitize=address /Zi" PM_LINK="/debug" # TRANSITION, -Wno-unused-command-line-argument is needed for the internal test harness PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call -Wno-unused-command-line-argument -Wno-overriding-t-option /Od /MTd" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call -Wno-unused-command-line-argument -Wno-overriding-t-option /O2 /MT" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call -Wno-unused-command-line-argument -Wno-overriding-t-option /O2 /MD /Oi-" -RUNALL_CROSSLIST -PM_CL="" -PM_CL="/arch:IA32" -PM_CL="/arch:AVX2" -PM_CL="/arch:VFPv4" -RUNALL_CROSSLIST -PM_CL="/fp:strict /DFP_CONFIG_PRESET=1 /DTEST_FP_ROUNDING=1" -PM_CL="/fp:precise /DFP_CONFIG_PRESET=2 /DTEST_FP_ROUNDING=1" -PM_CL="/fp:precise /DFP_CONFIG_PRESET=2 /DTEST_FP_ROUNDING=0" -PM_CL="/fp:fast /DFP_CONFIG_PRESET=3 /DTEST_FP_ROUNDING=0" -RUNALL_CROSSLIST -PM_CL="/DWITH_FP_ABRUPT_UNDERFLOW=0" -PM_CL="/DWITH_FP_ABRUPT_UNDERFLOW=1" PM_LINK="loosefpmath.obj" -RUNALL_CROSSLIST -PM_CL="/DFP_CONTRACT_MODE=0 /clang:-ffp-contract=off" -PM_CL="/DFP_CONTRACT_MODE=1 /clang:-ffp-contract=on" -PM_CL="/DFP_CONTRACT_MODE=2 /clang:-ffp-contract=fast" diff --git a/tests/std/tests/impure_matrix.lst b/tests/std/tests/impure_matrix.lst index a14eb162d57..a1920cd1ed9 100644 --- a/tests/std/tests/impure_matrix.lst +++ b/tests/std/tests/impure_matrix.lst @@ -6,25 +6,42 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14" +ASAN PM_CL="/EHsc /MD /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/EHsc /MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/EHsc /MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++14 /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++14" diff --git a/tests/std/tests/prefix.lst b/tests/std/tests/prefix.lst index 0489944b713..a2606478982 100644 --- a/tests/std/tests/prefix.lst +++ b/tests/std/tests/prefix.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\..\universal_prefix.lst RUNALL_CROSSLIST -PM_CL="/FIforce_include.hpp /w14365 /w15267 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" +* PM_CL="/FIforce_include.hpp /w14365 /w15267 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" diff --git a/tests/std/tests/strict_concepts_20_matrix.lst b/tests/std/tests/strict_concepts_20_matrix.lst index cc86671e318..e2270db8ff0 100644 --- a/tests/std/tests/strict_concepts_20_matrix.lst +++ b/tests/std/tests/strict_concepts_20_matrix.lst @@ -5,25 +5,38 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /permissive-" +* PM_CL="/w14640 /Zc:threadSafeInit- /permissive-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++20 /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest" +ASAN PM_CL="/EHsc /MD /std:c++latest -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest" +ASAN PM_CL="/EHsc /MDd /std:c++latest -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++20 /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest" +ASAN PM_CL="/EHsc /MT /std:c++latest -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest" +ASAN PM_CL="/EHsc /MTd /std:c++latest -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" -# PM_CL="/std:c++20 /BE /c /EHsc /MD" -# PM_CL="/std:c++latest /BE /c /EHsc /MTd" +# PM_CL="/std:c++20 /BE /c /EHsc /MD" # TRANSITION, GH-395 +# PM_CL="/std:c++latest /BE /c /EHsc /MTd" # TRANSITION, GH-395 PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++20 /MD" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /MTd /fp:strict" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /EHsc /std:c++latest /MT /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" diff --git a/tests/std/tests/strict_concepts_latest_matrix.lst b/tests/std/tests/strict_concepts_latest_matrix.lst index 2604c0e479c..f513cfefeca 100644 --- a/tests/std/tests/strict_concepts_latest_matrix.lst +++ b/tests/std/tests/strict_concepts_latest_matrix.lst @@ -5,23 +5,36 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest /permissive-" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest /permissive-" RUNALL_CROSSLIST PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:noexceptTypes-" +ASAN PM_CL="/MD /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1" +ASAN PM_CL="/MD -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/MD /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /Zc:wchar_t-" +ASAN PM_CL="/MDd /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=1" +ASAN PM_CL="/MDd -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /fp:except /Zc:preprocessor" +ASAN PM_CL="/MDd /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0" +ASAN PM_CL="/MT -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /analyze:only /analyze:autolog-" +ASAN PM_CL="/MT /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=1" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /fp:strict" +ASAN PM_CL="/MTd /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=1" +ASAN PM_CL="/MTd -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /analyze:only /analyze:autolog-" -# PM_CL="/BE /c /MD" -# PM_CL="/BE /c /MTd" +ASAN PM_CL="/MTd /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" +# PM_CL="/BE /c /MD" # TRANSITION, GH-395 +# PM_CL="/BE /c /MTd" # TRANSITION, GH-395 PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /MD" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /MTd /fp:strict" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /MT /fp:strict -fsanitize=undefined -fno-sanitize-recover=undefined" diff --git a/tests/std/tests/usual_17_matrix.lst b/tests/std/tests/usual_17_matrix.lst index 6b82f8ba838..517a5d38ae8 100644 --- a/tests/std/tests/usual_17_matrix.lst +++ b/tests/std/tests/usual_17_matrix.lst @@ -5,25 +5,42 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/EHsc /MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/EHsc /MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++latest /permissive-" diff --git a/tests/std/tests/usual_20_matrix.lst b/tests/std/tests/usual_20_matrix.lst index 119e24c2246..be4602dcfbe 100644 --- a/tests/std/tests/usual_20_matrix.lst +++ b/tests/std/tests/usual_20_matrix.lst @@ -3,21 +3,34 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++20 /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++20 /permissive-" diff --git a/tests/std/tests/usual_latest_matrix.lst b/tests/std/tests/usual_latest_matrix.lst index 68e6e2fbcae..20dbef6af61 100644 --- a/tests/std/tests/usual_latest_matrix.lst +++ b/tests/std/tests/usual_latest_matrix.lst @@ -3,21 +3,34 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" +* PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest" RUNALL_CROSSLIST PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:noexceptTypes-" +ASAN PM_CL="/MD /permissive- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MD /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:char8_t-" +ASAN PM_CL="/MD /permissive- /Zc:char8_t- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:wchar_t- /Zc:preprocessor" +ASAN PM_CL="/MDd /permissive- /Zc:wchar_t- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MDd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /fp:except /Zc:preprocessor" +ASAN PM_CL="/MDd /permissive- /fp:except /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive-" +ASAN PM_CL="/MT /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/MT /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /fp:strict" +ASAN PM_CL="/MTd /permissive- /fp:strict -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=1 /permissive-" +ASAN PM_CL="/MTd /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive" +ASAN PM_CL="/MTd /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/MTd /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/BE /c /MD /permissive-" PM_CL="/BE /c /MTd /permissive-" PM_COMPILER="clang-cl" PM_CL="-fno-ms-compatibility -fno-delayed-template-parsing -Wno-unqualified-std-cast-call /permissive- /MD" diff --git a/tests/std/tests/usual_matrix.lst b/tests/std/tests/usual_matrix.lst index ecf7265160b..97f067fd5d6 100644 --- a/tests/std/tests/usual_matrix.lst +++ b/tests/std/tests/usual_matrix.lst @@ -8,22 +8,39 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++14 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++17 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++20 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- /Zc:noexceptTypes-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- /Zc:noexceptTypes- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:char8_t- /w14640 /Zc:threadSafeInit- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /Zc:char8_t- /Zc:preprocessor /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /Zc:wchar_t- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /Zc:wchar_t- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /w14640 /Zc:threadSafeInit- /Zc:preprocessor" +ASAN PM_CL="/EHsc /MDd /std:c++14 /fp:except /w14640 /Zc:threadSafeInit- /Zc:preprocessor -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /fp:strict /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /fp:strict /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20 /w14640 /Zc:threadSafeInit-" PM_CL="/clr /MDd /std:c++20 /w14640 /Zc:threadSafeInit-" PM_CL="/clr:pure /MD /std:c++14" diff --git a/tests/tr1/env.lst b/tests/tr1/env.lst index a814774a4a5..f2a0a842d36 100644 --- a/tests/tr1/env.lst +++ b/tests/tr1/env.lst @@ -4,21 +4,37 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14" +ASAN PM_CL="/EHsc /MD /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/EHsc /MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++20" +ASAN PM_CL="/EHsc /MD /std:c++20 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14" +ASAN PM_CL="/EHsc /MDd /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++20 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++20 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/clr:pure /MD /std:c++14" diff --git a/tests/tr1/env_minus_md_idl.lst b/tests/tr1/env_minus_md_idl.lst index 2fc8c1b4a5d..70db5f6e690 100644 --- a/tests/tr1/env_minus_md_idl.lst +++ b/tests/tr1/env_minus_md_idl.lst @@ -4,18 +4,31 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++14 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++17 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++14 /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive- /w14640 /Zc:threadSafeInit-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- /w14640 /Zc:threadSafeInit- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20 /w14640 /Zc:threadSafeInit-" PM_CL="/clr /MDd /std:c++20 /w14640 /Zc:threadSafeInit-" PM_CL="/clr:pure /MD /std:c++14" diff --git a/tests/tr1/env_minus_pure.lst b/tests/tr1/env_minus_pure.lst index 72ffa04557e..845a2b811f7 100644 --- a/tests/tr1/env_minus_pure.lst +++ b/tests/tr1/env_minus_pure.lst @@ -3,22 +3,36 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/w14640 /Zc:threadSafeInit-" +* PM_CL="/w14640 /Zc:threadSafeInit-" RUNALL_CROSSLIST PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14" +ASAN PM_CL="/EHsc /MD /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17" +ASAN PM_CL="/EHsc /MD /std:c++17 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MD /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14" +ASAN PM_CL="/EHsc /MDd /std:c++14 -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-" +ASAN PM_CL="/EHsc /MDd /std:c++17 /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MT /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /permissive-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /permissive-" +# No corresponding ASAN config, since the above differs from another config only in IDL PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:only /analyze:autolog-" +ASAN PM_CL="/EHsc /MTd /std:c++latest /permissive- /analyze:only /analyze:autolog- -fsanitize=address /Zi" PM_LINK="/debug" PM_CL="/clr /MD /std:c++20" PM_CL="/clr /MDd /std:c++20" PM_CL="/BE /c /EHsc /MD /std:c++14" diff --git a/tests/tr1/env_single.lst b/tests/tr1/env_single.lst index 7234b0396b8..7a16a93f272 100644 --- a/tests/tr1/env_single.lst +++ b/tests/tr1/env_single.lst @@ -3,4 +3,7 @@ RUNALL_INCLUDE .\prefix.lst RUNALL_CROSSLIST -PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:autolog- /w14640 /Zc:threadSafeInit-" +* PM_CL="/EHsc /MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /permissive- /analyze:autolog- /w14640 /Zc:threadSafeInit-" +RUNALL_CROSSLIST +PM_CL="" +ASAN PM_CL="-fsanitize=address /Zi" PM_LINK="/debug" diff --git a/tests/tr1/prefix.lst b/tests/tr1/prefix.lst index 03a2c4e6803..45b4447dc69 100644 --- a/tests/tr1/prefix.lst +++ b/tests/tr1/prefix.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\universal_prefix.lst RUNALL_CROSSLIST -PM_CL="/FIforce_include.hpp /w15267 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_CRT_SECURE_NO_WARNINGS /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" +* PM_CL="/FIforce_include.hpp /w15267 /D_ENFORCE_FACET_SPECIALIZATIONS=1 /D_CRT_SECURE_NO_WARNINGS /D_STL_CALL_ABORT_INSTEAD_OF_INVALID_PARAMETER" diff --git a/tests/tr1/tests/cvt/env.lst b/tests/tr1/tests/cvt/env.lst index 815c53e70ba..9be33a9ba45 100644 --- a/tests/tr1/tests/cvt/env.lst +++ b/tests/tr1/tests/cvt/env.lst @@ -3,4 +3,4 @@ RUNALL_INCLUDE ..\..\env_single.lst RUNALL_CROSSLIST -PM_CL="/D_SILENCE_STDEXT_CVT_DEPRECATION_WARNING" +* PM_CL="/D_SILENCE_STDEXT_CVT_DEPRECATION_WARNING" diff --git a/tests/universal_prefix.lst b/tests/universal_prefix.lst index 5919b09c514..b98fb54f8f5 100644 --- a/tests/universal_prefix.lst +++ b/tests/universal_prefix.lst @@ -1,4 +1,4 @@ # Copyright (c) Microsoft Corporation. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -PM_CL="/nologo /Od /W4 /w14061 /w14242 /w14265 /w14582 /w14583 /w14587 /w14588 /w14749 /w14841 /w14842 /w15038 /w15214 /w15215 /w15216 /w15217 /w15262 /sdl /WX /D_ENABLE_STL_INTERNAL_CHECK /bigobj" PM_LINK="/MANIFEST:EMBED" +* PM_CL="/nologo /Od /W4 /w14061 /w14242 /w14265 /w14582 /w14583 /w14587 /w14588 /w14749 /w14841 /w14842 /w15038 /w15214 /w15215 /w15216 /w15217 /w15262 /sdl /WX /D_ENABLE_STL_INTERNAL_CHECK /bigobj" PM_LINK="/MANIFEST:EMBED" diff --git a/tests/utils/stl/test/file_parsing.py b/tests/utils/stl/test/file_parsing.py index 5b086cc49af..84c3b70f1ad 100644 --- a/tests/utils/stl/test/file_parsing.py +++ b/tests/utils/stl/test/file_parsing.py @@ -3,7 +3,7 @@ from dataclasses import dataclass, field from pathlib import Path -from typing import Dict, List, Optional, Tuple, Union +from typing import Dict, List, Optional, Set, Tuple, Union import itertools import os import re @@ -20,6 +20,7 @@ @dataclass class _TmpEnvEntry: env: Dict[str, str] = field(default_factory=dict) + tags: Set[str] = field(default_factory=set) @dataclass(frozen=True) @@ -27,6 +28,10 @@ class EnvEntry: def __init__(self, tmp_env: _TmpEnvEntry): object.__setattr__(self, "_env_keys", tuple(tmp_env.env.keys())) object.__setattr__(self, "_env_vals", tuple(tmp_env.env.values())) + object.__setattr__(self, "_env_tags", tmp_env.tags) + + def hasAnyTag(self, tags: Set[str]) -> bool: + return bool(self._env_tags & tags) def getEnvVal(self, key: str, default: Optional[str] = None) \ -> Optional[str]: @@ -39,6 +44,7 @@ def getEnvVal(self, key: str, default: Optional[str] = None) \ _env_keys: Tuple[str] _env_vals: Tuple[str] + _env_tags: Set[str] @dataclass @@ -49,6 +55,7 @@ class _ParseCtx: _COMMENT_REGEX = re.compile(r"\s*#.*", re.DOTALL) _INCLUDE_REGEX = re.compile(r'^RUNALL_INCLUDE (?P.+$)') +_TAGS_REGEX = re.compile(r'^(?P(\*|\w+(,\w+)*))\t+(?P.*)$') _ENV_VAR_MULTI_ITEM_REGEX = re.compile(r'(?P\w+)="(?P.*?)"') _CROSSLIST_REGEX = re.compile(r'^RUNALL_CROSSLIST$') _EXPECTED_RESULT_REGEX = re.compile(r'^(?P.*) (?P.*?)$') @@ -56,6 +63,10 @@ class _ParseCtx: def _parse_env_line(line: str) -> Optional[_TmpEnvEntry]: result = _TmpEnvEntry() + if (m:=_TAGS_REGEX.match(line)) is not None: + tags = m.group("tags").split(',') + result.tags = set([x.strip().casefold() for x in tags]) + line = m.group("remainder") for env_match in _ENV_VAR_MULTI_ITEM_REGEX.finditer(line): name = env_match.group("name") value = env_match.group("value") @@ -63,9 +74,19 @@ def _parse_env_line(line: str) -> Optional[_TmpEnvEntry]: return result -def _append_env_entries(*args) -> _TmpEnvEntry: +def _merge_crosslist_entries(*args) -> _TmpEnvEntry: result = _TmpEnvEntry() + result.tags = set(['*']) for entry in args: + # tags are intersected; `*` matches everything + if len(entry.tags) == 1 and '*' in entry.tags: + pass + elif len(result.tags) == 1 and '*' in result.tags: + result.tags = entry.tags + else: + result.tags &= entry.tags + + # values for identical keys are concatenated for k, v in entry.env.items(): if k not in result.env: result.env[k] = v @@ -75,7 +96,7 @@ def _append_env_entries(*args) -> _TmpEnvEntry: def _do_crosslist(ctx: _ParseCtx): - return itertools.starmap(_append_env_entries, + return itertools.starmap(_merge_crosslist_entries, itertools.product(*ctx.result)) diff --git a/tests/utils/stl/test/params.py b/tests/utils/stl/test/params.py index c83d14b7a2d..3df3e61e6ca 100644 --- a/tests/utils/stl/test/params.py +++ b/tests/utils/stl/test/params.py @@ -8,11 +8,45 @@ from libcxx.test.dsl import * +class AddRunPLTags(ConfigAction): + """ + Store a set of run.pl tags in the config to be later used to select test cases. + """ + def __init__(self, taglist): + self._taglist = taglist + + def applyTo(self, config): + config.runPLTags = set(map(lambda x: x.casefold(), self._taglist)) + + def pretty(self, config, litParams): + return 'select run.pl tags {}'.format(str(self._taglist)) + + +class AddRunPLNotags(ConfigAction): + """ + Store a set of run.pl tags in the config to be later used to exclude test cases. + """ + def __init__(self, taglist): + self._taglist = taglist + + def applyTo(self, config): + config.runPLNotags = set(map(lambda x: x.casefold(), self._taglist)) + + def pretty(self, config, litParams): + return 'exclude run.pl tags {}'.format(str(self._taglist)) + + def getDefaultParameters(config, litConfig): DEFAULT_PARAMETERS = [ Parameter(name='long_tests', choices=[True, False], type=bool, default=True, help="Whether to run tests that take a long time. This can be useful when running on a slow device.", actions=lambda enabled: [AddFeature(name='long_tests')] if enabled else []), + Parameter(name="tags", type=list, default=[], + help="Comma-separated list of run.pl tags to select tests", + actions=lambda tags: [AddRunPLTags(tags)]), + Parameter(name="notags", type=list, default=[], + help="Comma-separated list of run.pl tags to exclude tests", + actions=lambda tags: [AddRunPLNotags(tags)]), ] return DEFAULT_PARAMETERS diff --git a/tests/utils/stl/test/tests.py b/tests/utils/stl/test/tests.py index 21f0bb9921a..7c2fd01d47d 100644 --- a/tests/utils/stl/test/tests.py +++ b/tests/utils/stl/test/tests.py @@ -181,6 +181,14 @@ def _configureExpectedResult(self, litConfig): def _handleEnvlst(self, litConfig): envCompiler = self.envlstEntry.getEnvVal('PM_COMPILER', 'cl') + if self.config.runPLTags and not self.envlstEntry.hasAnyTag(self.config.runPLTags): + return Result(SKIPPED, 'This test was skipped because its tags {}'.format(str(self.envlstEntry._env_tags)) + + ' do not match any of the selected tags {}'.format(str(self.config.runPLTags))) + + if self.config.runPLNotags and self.envlstEntry.hasAnyTag(self.config.runPLNotags): + return Result(SKIPPED, 'This test was skipped because its tags {}'.format(str(self.envlstEntry._env_tags)) + + ' match any of the excluded tags {}'.format(str(self.config.runPLNotags))) + cxx = None if os.path.isfile(envCompiler): cxx = envCompiler @@ -252,12 +260,18 @@ def _parseFlags(self, litConfig): self._addCustomFeature('c++17') elif flag[5:] == 'c++14': self._addCustomFeature('c++14') + elif flag[1:11] == 'fsanitize=': + for sanitizer in flag[11:].split(','): + if sanitizer == 'address': + self._addCustomFeature('asan') + elif sanitizer == 'undefined': + self.requires.append('ubsan') # available for x64, see features.py + else: + pass # :shrug: good luck! elif flag[1:] == 'clr:pure': self.requires.append('clr_pure') # TRANSITION, GH-798 elif flag[1:] == 'clr': self.requires.append('clr') # TRANSITION, GH-797 - elif flag[1:] == 'fsanitize=undefined': - self.requires.append('ubsan') # available for x64, see features.py elif flag[1:] == 'BE': self.requires.append('edg') # available for x64, see features.py elif flag[1:] == 'arch:AVX2': @@ -266,8 +280,6 @@ def _parseFlags(self, litConfig): self.requires.append('arch_ia32') # available for x86, see features.py elif flag[1:] == 'arch:VFPv4': self.requires.append('arch_vfpv4') # available for arm, see features.py - elif flag[1:] == 'fsanitize=address': - self._addCustomFeature('asan') elif flag[1:] == 'MDd': self._addCustomFeature('MDd') self._addCustomFeature('debug_CRT') diff --git a/tools/validate/validate.cpp b/tools/validate/validate.cpp index 8f1d1a2fd49..60b274e99cf 100644 --- a/tools/validate/validate.cpp +++ b/tools/validate/validate.cpp @@ -222,10 +222,15 @@ int main() { L".gitmodules"sv, }; + static constexpr array tabby_extensions{ + L".lst"sv, + }; + static_assert(ranges::is_sorted(skipped_directories)); static_assert(ranges::is_sorted(skipped_extensions)); static_assert(ranges::is_sorted(bad_extensions)); static_assert(ranges::is_sorted(tabby_filenames)); + static_assert(ranges::is_sorted(tabby_extensions)); vector buffer; // reused for performance bool any_errors = false; @@ -268,8 +273,8 @@ int main() { continue; } - const TabPolicy tab_policy = - ranges::binary_search(tabby_filenames, filename) ? TabPolicy::Allowed : TabPolicy::Forbidden; + const TabPolicy tab_policy{ + ranges::binary_search(tabby_filenames, filename) || ranges::binary_search(tabby_extensions, extension)}; scan_file(any_errors, filepath, tab_policy, buffer); } From f3f753d354e6fc11babde6dedeaec474709a6957 Mon Sep 17 00:00:00 2001 From: "Stephan T. Lavavej" Date: Wed, 4 Oct 2023 13:23:21 -0700 Subject: [PATCH 06/25] P1169R4 `static` `operator()` (#4053) --- stl/inc/functional | 27 ++++++++- stl/inc/yvals_core.h | 1 + tests/libcxx/expected_results.txt | 8 +-- tests/std/test.lst | 1 + .../P1169R4_static_call_operator/env.lst | 4 ++ .../test.compile.pass.cpp | 57 +++++++++++++++++++ 6 files changed, 93 insertions(+), 5 deletions(-) create mode 100644 tests/std/tests/P1169R4_static_call_operator/env.lst create mode 100644 tests/std/tests/P1169R4_static_call_operator/test.compile.pass.cpp diff --git a/stl/inc/functional b/stl/inc/functional index a0c97586e40..8c0ce8f7944 100644 --- a/stl/inc/functional +++ b/stl/inc/functional @@ -1139,12 +1139,37 @@ public: _NON_MEMBER_CALL(_FUNCTION_POINTER_DEDUCTION_GUIDE, X1, X2, X3) #undef _FUNCTION_POINTER_DEDUCTION_GUIDE +template +struct _Deduce_from_call_operator : _Is_memfunptr<_Call_op>::_Guide_type {}; // N4958 [func.wrap.func.con]/16.1 + +#ifdef __cpp_static_call_operator +template +struct _Inspect_static_call_operator {}; + +#define _STATIC_CALL_OPERATOR_GUIDES(CALL_OPT, CV_OPT, REF_OPT, NOEXCEPT_OPT) \ + template \ + struct _Inspect_static_call_operator<_Ret(CALL_OPT*)(_Args...) NOEXCEPT_OPT> { \ + using type = _Ret(_Args...); \ + }; + +_NON_MEMBER_CALL(_STATIC_CALL_OPERATOR_GUIDES, , , ) +#ifdef __cpp_noexcept_function_type +_NON_MEMBER_CALL(_STATIC_CALL_OPERATOR_GUIDES, , , noexcept) +#endif // ^^^ defined(__cpp_noexcept_function_type) ^^^ + +#undef _STATIC_CALL_OPERATOR_GUIDES + +template +struct _Deduce_from_call_operator<_Fx, _Call_op, void_t().operator())>> + : _Inspect_static_call_operator<_Call_op> {}; // N4958 [func.wrap.func.con]/16.2 +#endif // ^^^ defined(__cpp_static_call_operator) ^^^ + template struct _Deduce_signature {}; // can't deduce signature when &_Fx::operator() is missing, inaccessible, or ambiguous template struct _Deduce_signature<_Fx, void_t> - : _Is_memfunptr::_Guide_type {}; // N4950 [func.wrap.func.con]/16.1 + : _Deduce_from_call_operator<_Fx, decltype(&_Fx::operator())> {}; template function(_Fx) -> function::type>; diff --git a/stl/inc/yvals_core.h b/stl/inc/yvals_core.h index e1df05934dd..d3a4feed390 100644 --- a/stl/inc/yvals_core.h +++ b/stl/inc/yvals_core.h @@ -128,6 +128,7 @@ // P0858R0 Constexpr Iterator Requirements // P1065R2 constexpr INVOKE // (the std::invoke function only; other components like bind and reference_wrapper are C++20 only) +// P1169R4 static operator() // P1518R2 Stop Overconstraining Allocators In Container Deduction Guides // P2162R2 Inheriting From variant // P2251R1 Require span And basic_string_view To Be Trivially Copyable diff --git a/tests/libcxx/expected_results.txt b/tests/libcxx/expected_results.txt index 94e0a030e70..99f0b15afb5 100644 --- a/tests/libcxx/expected_results.txt +++ b/tests/libcxx/expected_results.txt @@ -346,9 +346,6 @@ std/strings/string.conversions/stol.pass.cpp:1 FAIL std/depr/depr.c.headers/uchar_h.compile.pass.cpp FAIL std/strings/c.strings/cuchar.compile.pass.cpp FAIL -# P1169R4 static operator() -std/thread/futures/futures.task/futures.task.members/ctad.static.compile.pass.cpp FAIL - # P2255R2 "Type Traits To Detect References Binding To Temporaries" std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp FAIL @@ -368,6 +365,10 @@ std/utilities/format/format.tuple/set_separator.pass.cpp FAIL # MSVC doesn't properly support [[no_unique_address]] std/algorithms/algorithms.results/no_unique_address.compile.pass.cpp SKIPPED +# P1169R4 static operator() +std/thread/futures/futures.task/futures.task.members/ctad.static.compile.pass.cpp:0 FAIL +std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/ctad.static.compile.pass.cpp:0 FAIL + # *** MISSING LWG ISSUE RESOLUTIONS *** # LWG-2192 "Validity and return type of std::abs(0u) is unclear" (resolution is missing in UCRT, DevCom-10331466) @@ -1150,7 +1151,6 @@ std/ranges/range.factories/range.single.view/cpo.pass.cpp FAIL std/thread/futures/futures.task/futures.task.members/ctor2.compile.pass.cpp FAIL std/utilities/format/format.functions/escaped_output.ascii.pass.cpp FAIL std/utilities/format/format.functions/locale-specific_form.pass.cpp FAIL -std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/ctad.static.compile.pass.cpp FAIL std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp:0 FAIL std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.inv/invoke.pass.cpp:1 FAIL std/utilities/function.objects/refwrap/refwrap.const/type_conv_ctor.pass.cpp:0 FAIL diff --git a/tests/std/test.lst b/tests/std/test.lst index 8c1a3602607..7b1396a5932 100644 --- a/tests/std/test.lst +++ b/tests/std/test.lst @@ -509,6 +509,7 @@ 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 diff --git a/tests/std/tests/P1169R4_static_call_operator/env.lst b/tests/std/tests/P1169R4_static_call_operator/env.lst new file mode 100644 index 00000000000..642f530ffad --- /dev/null +++ b/tests/std/tests/P1169R4_static_call_operator/env.lst @@ -0,0 +1,4 @@ +# Copyright (c) Microsoft Corporation. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +RUNALL_INCLUDE ..\usual_latest_matrix.lst diff --git a/tests/std/tests/P1169R4_static_call_operator/test.compile.pass.cpp b/tests/std/tests/P1169R4_static_call_operator/test.compile.pass.cpp new file mode 100644 index 00000000000..47b6bcd6374 --- /dev/null +++ b/tests/std/tests/P1169R4_static_call_operator/test.compile.pass.cpp @@ -0,0 +1,57 @@ +// Copyright (c) Microsoft Corporation. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception + +#ifdef __cpp_static_call_operator + +#include +#include +#include +using namespace std; + +struct F0 { + static char operator()(); +}; + +struct F1 { + static short operator()(float); +}; + +struct F2 { + static int operator()(double*, double&); +}; + +struct F3 { + static void operator()(const long&, long&&, const long&&); +}; + +struct Base { + static bool operator()(unsigned int); +}; + +struct Derived : Base {}; + +struct Nothrow { + static char16_t operator()(char32_t) noexcept; +}; + +template