Skip to content

Commit

Permalink
Guard noexcept annotated function pointer type for __cpp_noexcept_fun…
Browse files Browse the repository at this point in the history
…ction_type. (#1150)

Resolves VSO-1166234.
  • Loading branch information
BillyONeal authored Aug 13, 2020
1 parent f3ca37d commit 87dc1d3
Show file tree
Hide file tree
Showing 18 changed files with 58 additions and 40 deletions.
6 changes: 3 additions & 3 deletions stl/inc/any
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ inline constexpr bool _Any_is_small = alignof(_Ty) <= alignof(max_align_t)
enum class _Any_representation : uintptr_t { _Trivial, _Big, _Small };

struct _Any_big_RTTI { // Hand-rolled vtable for types that must be heap allocated in an any
using _Destroy_fn = void __CLRCALL_PURE_OR_CDECL(void*) noexcept;
using _Destroy_fn = void __CLRCALL_PURE_OR_CDECL(void*) _NOEXCEPT_FNPTR;
using _Copy_fn = void* __CLRCALL_PURE_OR_CDECL(const void*);

template <class _Ty>
Expand All @@ -76,9 +76,9 @@ struct _Any_big_RTTI { // Hand-rolled vtable for types that must be heap allocat
};

struct _Any_small_RTTI { // Hand-rolled vtable for nontrivial types that can be stored internally in an any
using _Destroy_fn = void __CLRCALL_PURE_OR_CDECL(void*) noexcept;
using _Destroy_fn = void __CLRCALL_PURE_OR_CDECL(void*) _NOEXCEPT_FNPTR;
using _Copy_fn = void __CLRCALL_PURE_OR_CDECL(void*, const void*);
using _Move_fn = void __CLRCALL_PURE_OR_CDECL(void*, void*) noexcept;
using _Move_fn = void __CLRCALL_PURE_OR_CDECL(void*, void*) _NOEXCEPT_FNPTR;

template <class _Ty>
static void __CLRCALL_PURE_OR_CDECL _Destroy_impl(void* const _Target) noexcept {
Expand Down
2 changes: 1 addition & 1 deletion stl/inc/xatomic_wait.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ void __stdcall __std_atomic_notify_all_direct(const void* _Storage) noexcept;
// of one of those sizes whose value changes upon notify, hence "indirect". (As of 2020-07-24, this always uses the
// fallback SRWLOCK and CONDITION_VARIABLE implementation but that is not contractual.)
using _Atomic_wait_indirect_equal_callback_t = bool(__stdcall*)(
const void* _Storage, void* _Comparand, size_t _Size, void* _Param) noexcept;
const void* _Storage, void* _Comparand, size_t _Size, void* _Param) _NOEXCEPT_FNPTR;

int __stdcall __std_atomic_wait_indirect(const void* _Storage, void* _Comparand, size_t _Size, void* _Param,
_Atomic_wait_indirect_equal_callback_t _Are_equal, unsigned long _Remaining_timeout) noexcept;
Expand Down
6 changes: 6 additions & 0 deletions stl/inc/yvals_core.h
Original file line number Diff line number Diff line change
Expand Up @@ -1289,5 +1289,11 @@ compiler option, or define _ALLOW_RTCc_IN_STL to acknowledge that you have recei
#endif // ^^^ !defined(_M_ARM) && !defined(_M_ARM64) && !defined(_ONECORE) && !defined(_CRT_APP) ^^^
#endif // _STL_WIN32_WINNT

#ifdef __cpp_noexcept_function_type
#define _NOEXCEPT_FNPTR noexcept
#else
#define _NOEXCEPT_FNPTR
#endif // __cpp_noexcept_function_type

#endif // _STL_COMPILER_PREPROCESSOR
#endif // _YVALS_CORE_H_
24 changes: 14 additions & 10 deletions tests/std/tests/Dev11_0535636_functional_overhaul/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1096,28 +1096,32 @@ void test_invoke() {
assert(invoke(&Thing::sum, sp, 6) == 1026);
STATIC_ASSERT(!noexcept(invoke(&Thing::sum, sp, 6) == 1026));

#if _HAS_CXX17
constexpr bool noexcept_is_in_the_type_system =
#ifdef __cpp_noexcept_function_type
true
#else
false
#endif // __cpp_noexcept_function_type
;

assert(invoke(&Thing::sum_noexcept, *sp, 3) == 1023);
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, *sp, 3) == 1023));
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, *sp, 3) == 1023) == noexcept_is_in_the_type_system);
assert(invoke(&Thing::sum_noexcept, ref(*sp), 4) == 1024);
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, ref(*sp), 4) == 1024));
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, ref(*sp), 4) == 1024) == noexcept_is_in_the_type_system);
assert(invoke(&Thing::sum_noexcept, sp.get(), 5) == 1025);
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, sp.get(), 5) == 1025));
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, sp.get(), 5) == 1025) == noexcept_is_in_the_type_system);
assert(invoke(&Thing::sum_noexcept, sp, 6) == 1026);
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, sp, 6) == 1026));
#endif // _HAS_CXX17
STATIC_ASSERT(noexcept(invoke(&Thing::sum_noexcept, sp, 6) == 1026) == noexcept_is_in_the_type_system);

assert(invoke(square, 6) == 36);
STATIC_ASSERT(!noexcept(invoke(square, 6) == 36));
assert(invoke(&cube, 7) == 343);
STATIC_ASSERT(!noexcept(invoke(&cube, 7) == 343));

#if _HAS_CXX17
assert(invoke(square_noexcept, 6) == 36);
STATIC_ASSERT(noexcept(invoke(square_noexcept, 6) == 36));
STATIC_ASSERT(noexcept(invoke(square_noexcept, 6) == 36) == noexcept_is_in_the_type_system);
assert(invoke(&cube_noexcept, 7) == 343);
STATIC_ASSERT(noexcept(invoke(&cube_noexcept, 7) == 343));
#endif // _HAS_CXX17
STATIC_ASSERT(noexcept(invoke(&cube_noexcept, 7) == 343) == noexcept_is_in_the_type_system);
}


Expand Down
6 changes: 3 additions & 3 deletions tests/std/tests/P0088R3_variant/env.lst
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ 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 /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:noexceptTypes- /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t- /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /fp:except /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /fp:except /Zc:preprocessor /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-"
PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /await /DCONSTEXPR_NOTHROW"
PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /analyze:only /DCONSTEXPR_NOTHROW"
Expand Down
28 changes: 18 additions & 10 deletions tests/std/tests/VSO_0105317_expression_sfinae/test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -512,19 +512,27 @@ STATIC_ASSERT(is_invocable_v<PMD, X*>);
STATIC_ASSERT(is_nothrow_invocable_v<PMD, X*>);

// Test noexcept function types.
using FP_noexcept = int (*)(int) noexcept;
using FR_noexcept = int (&)(int) noexcept;
using PMF_noexcept = int (X::*)(int) noexcept;
#ifdef __cpp_noexcept_function_type
using FP_noexcept = int (*)(int) noexcept;
using FR_noexcept = int (&)(int) noexcept;
using PMF_noexcept = int (X::*)(int) noexcept;
inline constexpr bool noexcept_in_the_type_system = true;
#else // ^^^ __cpp_noexcept_function_type // !__cpp_noexcept_function_type vvv
using FP_noexcept = int (*)(int);
using FR_noexcept = int (&)(int);
using PMF_noexcept = int (X::*)(int);
inline constexpr bool noexcept_in_the_type_system = false;
#endif // __cpp_noexcept_function_type

STATIC_ASSERT(is_invocable_v<FP, int>);
STATIC_ASSERT(!is_nothrow_invocable_v<FP, int>);
STATIC_ASSERT(is_invocable_v<FP_noexcept, int>);
STATIC_ASSERT(is_nothrow_invocable_v<FP_noexcept, int>);
STATIC_ASSERT(is_nothrow_invocable_v<FP_noexcept, int> == noexcept_in_the_type_system);

STATIC_ASSERT(is_invocable_v<FR, int>);
STATIC_ASSERT(!is_nothrow_invocable_v<FR, int>);
STATIC_ASSERT(is_invocable_v<FR_noexcept, int>);
STATIC_ASSERT(is_nothrow_invocable_v<FR_noexcept, int>);
STATIC_ASSERT(is_nothrow_invocable_v<FR_noexcept, int> == noexcept_in_the_type_system);

STATIC_ASSERT(is_invocable_v<PMF, X, int>);
STATIC_ASSERT(!is_nothrow_invocable_v<PMF, X, int>);
Expand All @@ -533,11 +541,11 @@ STATIC_ASSERT(!is_nothrow_invocable_v<PMF, reference_wrapper<X>, int>);
STATIC_ASSERT(is_invocable_v<PMF, X*, int>);
STATIC_ASSERT(!is_nothrow_invocable_v<PMF, X*, int>);
STATIC_ASSERT(is_invocable_v<PMF_noexcept, X, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, X, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, X, int> == noexcept_in_the_type_system);
STATIC_ASSERT(is_invocable_v<PMF_noexcept, reference_wrapper<X>, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, reference_wrapper<X>, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, reference_wrapper<X>, int> == noexcept_in_the_type_system);
STATIC_ASSERT(is_invocable_v<PMF_noexcept, X*, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, X*, int>);
STATIC_ASSERT(is_nothrow_invocable_v<PMF_noexcept, X*, int> == noexcept_in_the_type_system);

struct Conv_noexcept1 {
operator FP() noexcept;
Expand All @@ -558,7 +566,7 @@ STATIC_ASSERT(!is_nothrow_invocable_v<Conv_noexcept1, int>);
STATIC_ASSERT(is_invocable_v<Conv_noexcept2, int>);
STATIC_ASSERT(!is_nothrow_invocable_v<Conv_noexcept2, int>);
STATIC_ASSERT(is_invocable_v<Conv_noexcept3, int>);
STATIC_ASSERT(is_nothrow_invocable_v<Conv_noexcept3, int>);
STATIC_ASSERT(is_nothrow_invocable_v<Conv_noexcept3, int> == noexcept_in_the_type_system);

// Test argument conversions.
struct Okay_noexcept {
Expand All @@ -568,7 +576,7 @@ struct Okay_noexcept {
STATIC_ASSERT(is_invocable_v<FP_noexcept, Okay>);
STATIC_ASSERT(!is_nothrow_invocable_v<FP_noexcept, Okay>);
STATIC_ASSERT(is_invocable_v<FP_noexcept, Okay_noexcept>);
STATIC_ASSERT(is_nothrow_invocable_v<FP_noexcept, Okay_noexcept>);
STATIC_ASSERT(is_nothrow_invocable_v<FP_noexcept, Okay_noexcept> == noexcept_in_the_type_system);

// When the return type is non-void, does the invocation throw?
STATIC_ASSERT(is_invocable_r_v<long, Kitty, int>);
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/concepts_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ RUNALL_INCLUDE .\prefix.lst
RUNALL_CROSSLIST
PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest"
RUNALL_CROSSLIST
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:noexceptTypes-"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:char8_t- /Zc:preprocessor"
PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:wchar_t-"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/eha_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except"
PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /D_HAS_IF_CONSTEXPR=0"
PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-"
PM_CL="/MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /await"
PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /fp:strict"
PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /fp:strict /Zc:noexceptTypes-"
PM_CL="/MTd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++latest /await"
4 changes: 2 additions & 2 deletions tests/std/tests/impure_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ RUNALL_CROSSLIST
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /D_HAS_IF_CONSTEXPR=0"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /await /Zc:preprocessor"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /Zc:preprocessor"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /D_HAS_IF_CONSTEXPR=0"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++17 /permissive-"
PM_CL="/EHsc /MT /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /await"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/native_17_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/native_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RUNALL_CROSSLIST
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /D_HAS_IF_CONSTEXPR=0"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/native_winsdk_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ RUNALL_CROSSLIST
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++14 /D_HAS_IF_CONSTEXPR=0"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /Zc:noexceptTypes-"
# TRANSITION, GH-854
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor /wd5105"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t-"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_17_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ 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"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /Zc:preprocessor"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_17_winsdk_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ 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"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest"
# TRANSITION, GH-854
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_latest_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ RUNALL_INCLUDE .\prefix.lst
RUNALL_CROSSLIST
PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest"
RUNALL_CROSSLIST
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:noexceptTypes-"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:char8_t-"
PM_CL="/MDd /D_ITERATOR_DEBUG_LEVEL=0 /permissive- /Zc:wchar_t- /Zc:preprocessor"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_latest_winsdk_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ RUNALL_INCLUDE .\prefix.lst
RUNALL_CROSSLIST
PM_CL="/w14640 /Zc:threadSafeInit- /EHsc /std:c++latest"
RUNALL_CROSSLIST
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:noexceptTypes-"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=1"
PM_CL="/MD /D_ITERATOR_DEBUG_LEVEL=0 /Zc:char8_t-"
# TRANSITION, GH-854
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ 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++14 /D_HAS_IF_CONSTEXPR=0 /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=1 /std:c++latest /w14640 /Zc:threadSafeInit-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /w14640 /Zc:threadSafeInit- /Zc:noexceptTypes-"
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /w14640 /Zc:threadSafeInit- /Zc:preprocessor"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t- /w14640 /Zc:threadSafeInit-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /w14640 /Zc:threadSafeInit-"
Expand Down
2 changes: 1 addition & 1 deletion tests/std/tests/usual_winsdk_matrix.lst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++17 /w14640 /Zc:threadSafeInit
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /w14640 /Zc:threadSafeInit-"
# TRANSITION, GH-854
PM_CL="/EHsc /MD /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:char8_t- /w14640 /Zc:threadSafeInit- /Zc:preprocessor /wd5105"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t- /w14640 /Zc:threadSafeInit-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=0 /std:c++latest /Zc:wchar_t- /w14640 /Zc:threadSafeInit- /Zc:noexceptTypes-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=1 /std:c++latest /w14640 /Zc:threadSafeInit-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /fp:except /w14640 /Zc:threadSafeInit-"
PM_CL="/EHsc /MDd /D_ITERATOR_DEBUG_LEVEL=2 /std:c++14 /D_HAS_IF_CONSTEXPR=0 /w14640 /Zc:threadSafeInit-"
Expand Down

0 comments on commit 87dc1d3

Please sign in to comment.