Fix MSVC 14.29 errors:

- It doens't know which operator == to use when there is using
 EnumClassBitmask that looks like (a & b) == 0. Instead use just
 the form (a & b).
 - It doesn't do automatic capture of constexpr variables in lambdas so
 turn a couple constexpr into regular const.
 - It (correctly) warns that if constexpr (std::is_constant_evaluated())
 is always true, so remove the constexpr keyword.

 Bug: None

Change-Id: If7857abd1c30acb0736557844ff13f32a19d54cf
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117888
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez
2023-01-30 14:49:27 +00:00
committed by Dawn LUCI CQ
parent 40358fde0b
commit 97ad405216
8 changed files with 14 additions and 14 deletions

View File

@@ -1854,7 +1854,7 @@ ConstEval::Result ConstEval::OpShiftRight(const type::Type* ty,
using NumberT = decltype(e1);
using T = UnwrapNumber<NumberT>;
using UT = std::make_unsigned_t<T>;
constexpr size_t bit_width = BitWidth<NumberT>;
const size_t bit_width = BitWidth<NumberT>;
const UT e1u = static_cast<UT>(e1);
const UT e2u = static_cast<UT>(e2);