Constrain launch ~ operator to defined bits.
git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@185452 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
725ae713f2
commit
6a683bfb5f
@ -443,7 +443,7 @@ _LIBCPP_CONSTEXPR
|
|||||||
launch
|
launch
|
||||||
operator~(launch __x)
|
operator~(launch __x)
|
||||||
{
|
{
|
||||||
return static_cast<launch>(~static_cast<__launch_underlying_type>(__x));
|
return static_cast<launch>(~static_cast<__launch_underlying_type>(__x) & 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -28,7 +28,7 @@ int main()
|
|||||||
static_assert(std::launch::any == (std::launch::async | std::launch::deferred), "");
|
static_assert(std::launch::any == (std::launch::async | std::launch::deferred), "");
|
||||||
static_assert(std::launch(0) == (std::launch::async & std::launch::deferred), "");
|
static_assert(std::launch(0) == (std::launch::async & std::launch::deferred), "");
|
||||||
static_assert(std::launch::any == (std::launch::async ^ std::launch::deferred), "");
|
static_assert(std::launch::any == (std::launch::async ^ std::launch::deferred), "");
|
||||||
static_assert(std::launch(~1) == ~std::launch::async, "");
|
static_assert(std::launch::deferred == ~std::launch::async, "");
|
||||||
std::launch x = std::launch::async;
|
std::launch x = std::launch::async;
|
||||||
x &= std::launch::deferred;
|
x &= std::launch::deferred;
|
||||||
assert(x == std::launch(0));
|
assert(x == std::launch(0));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user