diff --git a/src/tint/reader/wgsl/lexer.cc b/src/tint/reader/wgsl/lexer.cc index 16712cae40..9ebe5d8a9c 100644 --- a/src/tint/reader/wgsl/lexer.cc +++ b/src/tint/reader/wgsl/lexer.cc @@ -405,11 +405,13 @@ Token Lexer::try_float() { } } + TINT_BEGIN_DISABLE_WARNING(FLOAT_EQUAL); if (value == HUGE_VAL || -value == HUGE_VAL) { return {Token::Type::kError, source, "value cannot be represented as 'abstract-float'"}; } else { return {Token::Type::kFloatLiteral, source, value}; } + TINT_END_DISABLE_WARNING(FLOAT_EQUAL); } Token Lexer::try_hex_float() { diff --git a/src/tint/utils/compiler_macros.h b/src/tint/utils/compiler_macros.h index b0df241b68..1a0404283d 100644 --- a/src/tint/utils/compiler_macros.h +++ b/src/tint/utils/compiler_macros.h @@ -19,7 +19,7 @@ #define TINT_REQUIRE_SEMICOLON static_assert(true) -#if defined(_MSC_VER) +#if defined(_MSC_VER) && !defined(__clang__) //////////////////////////////////////////////////////////////////////////////// // MSVC //////////////////////////////////////////////////////////////////////////////// @@ -30,6 +30,7 @@ #define TINT_DISABLE_WARNING_SIGN_CONVERSION /* currently no-op */ #define TINT_DISABLE_WARNING_UNREACHABLE_CODE __pragma(warning(disable : 4702)) #define TINT_DISABLE_WARNING_WEAK_VTABLES /* currently no-op */ +#define TINT_DISABLE_WARNING_FLOAT_EQUAL /* currently no-op */ // clang-format off #define TINT_BEGIN_DISABLE_WARNING(name) \ @@ -52,6 +53,7 @@ _Pragma("clang diagnostic ignored \"-Wsign-conversion\"") #define TINT_DISABLE_WARNING_UNREACHABLE_CODE /* currently no-op */ #define TINT_DISABLE_WARNING_WEAK_VTABLES _Pragma("clang diagnostic ignored \"-Wweak-vtables\"") +#define TINT_DISABLE_WARNING_FLOAT_EQUAL _Pragma("clang diagnostic ignored \"-Wfloat-equal\"") // clang-format off #define TINT_BEGIN_DISABLE_WARNING(name) \ @@ -74,6 +76,7 @@ #define TINT_DISABLE_WARNING_SIGN_CONVERSION /* currently no-op */ #define TINT_DISABLE_WARNING_UNREACHABLE_CODE /* currently no-op */ #define TINT_DISABLE_WARNING_WEAK_VTABLES /* currently no-op */ +#define TINT_DISABLE_WARNING_FLOAT_EQUAL /* currently no-op */ // clang-format off #define TINT_BEGIN_DISABLE_WARNING(name) \