From 8e3cde67dfa4aa17c0f1156b4a4acd0c95bdbe6f Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Wed, 19 Jun 2019 19:58:24 -0700 Subject: [PATCH] Fix MSVC build MSVC warning: c:\projects\harfbuzz\src\hb-ot-layout-gsubgpos.hh(2732): error C2121: '#': invalid character: possibly the result of a macro expansion [C:\projects\harfbuzz\build\harfbuzz.vcxproj] Clang warning for it: ./hb-ot-layout-gsubgpos.hh:2729:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive] --- src/hb-ot-layout-gsubgpos.hh | 18 +++++++++++------- src/hb.hh | 1 + 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/hb-ot-layout-gsubgpos.hh b/src/hb-ot-layout-gsubgpos.hh index dd54c9b34..9a82a4d67 100644 --- a/src/hb-ot-layout-gsubgpos.hh +++ b/src/hb-ot-layout-gsubgpos.hh @@ -2721,15 +2721,19 @@ struct GSUBGPOS { TRACE_SANITIZE (this); typedef OffsetListOf TLookupList; - return_trace (version.sanitize (c) && - likely (version.major == 1) && - scriptList.sanitize (c, this) && - featureList.sanitize (c, this) && - CastR> (lookupList).sanitize (c, this) && + if (unlikely (!(version.sanitize (c) && + likely (version.major == 1) && + scriptList.sanitize (c, this) && + featureList.sanitize (c, this) && + CastR> (lookupList).sanitize (c, this)))) + return_trace (false); + #ifndef HB_NO_VAR - (version.to_int () < 0x00010001u || featureVars.sanitize (c, this)) && + if (unlikely (!(version.to_int () < 0x00010001u || featureVars.sanitize (c, this)))) + return_trace (false); #endif - true); + + return_trace (true); } template diff --git a/src/hb.hh b/src/hb.hh index 3145574d9..bee39cd46 100644 --- a/src/hb.hh +++ b/src/hb.hh @@ -66,6 +66,7 @@ #pragma GCC diagnostic error "-Wcast-align" #pragma GCC diagnostic error "-Wcast-function-type" #pragma GCC diagnostic error "-Wdelete-non-virtual-dtor" +#pragma GCC diagnostic error "-Wembedded-directive" #pragma GCC diagnostic error "-Wextra-semi-stmt" #pragma GCC diagnostic error "-Wformat-security" #pragma GCC diagnostic error "-Wimplicit-function-declaration"