diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2016-10-10 13:10:21 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2016-10-10 13:10:48 +0200 |
commit | 1dac51334ba1440b158078f0dae765c7df55efb4 (patch) | |
tree | 3330259593797460d489610a9d3c5d957c50ec10 | |
parent | 0db235d61f323cecbbc1db761ba19cb5da4b3e6f (diff) |
Handle loplugin:fpcomparison false positives by whitelist
Change-Id: I58e2beb0695a27922856bd8f8988d9e4508aceb6
-rw-r--r-- | compilerplugins/clang/fpcomparison.cxx | 3 | ||||
-rw-r--r-- | libreofficekit/source/gtk/lokdocview.cxx | 4 | ||||
-rw-r--r-- | sal/rtl/math.cxx | 4 |
3 files changed, 5 insertions, 6 deletions
diff --git a/compilerplugins/clang/fpcomparison.cxx b/compilerplugins/clang/fpcomparison.cxx index 00dff6736027..cf24f40d2cc5 100644 --- a/compilerplugins/clang/fpcomparison.cxx +++ b/compilerplugins/clang/fpcomparison.cxx @@ -88,6 +88,7 @@ bool FpComparison::ignore(FunctionDecl* function) || dc.Function("doubleToString").AnonymousNamespace().GlobalNamespace() || dc.Function("stringToDouble").AnonymousNamespace().GlobalNamespace() || dc.Function("rtl_math_round").GlobalNamespace() + || dc.Function("rtl_math_approxEqual").GlobalNamespace() || dc.Function("rtl_math_approxValue").GlobalNamespace() || dc.Function("rtl_math_asinh").GlobalNamespace() || dc.Function("rtl_math_acosh").GlobalNamespace() @@ -103,6 +104,8 @@ bool FpComparison::ignore(FunctionDecl* function) || (dc.Function("initialize").Class("Impl").AnonymousNamespace() .GlobalNamespace()) // testtools/source/bridgetest/constructors.cxx + || dc.Function("lok_approxEqual").AnonymousNamespace().GlobalNamespace() + // libreofficekit/source/gtk/lokdocview.cxx // These might need fixing: || (dc.Function("getSmallestDistancePointToPolygon").Namespace("tools") .Namespace("basegfx").GlobalNamespace()) diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index 4d34428a3312..c4159b069c82 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -3188,9 +3188,7 @@ namespace { inline bool lok_approxEqual(double a, double b) { static const double e48 = 1.0 / (16777216.0 * 16777216.0); - // XXX loplugin:fpcomparison complains about floating-point comparison for - // a==b, though we actually want this here. - if (!(a<b) && !(a>b)) + if (a == b) return true; if (a == 0.0 || b == 0.0) return false; diff --git a/sal/rtl/math.cxx b/sal/rtl/math.cxx index 789c1354dfa7..9ce10f7c0ff6 100644 --- a/sal/rtl/math.cxx +++ b/sal/rtl/math.cxx @@ -1090,9 +1090,7 @@ bool SAL_CALL rtl_math_approxEqual(double a, double b) SAL_THROW_EXTERN_C() { static const double e48 = 1.0 / (16777216.0 * 16777216.0); static const double e44 = e48 * 16.0; - // XXX loplugin:fpcomparison complains about floating-point comparison for - // a==b, though we actually want this here. - if (!(a<b) && !(a>b)) + if (a == b) return true; if (a == 0.0 || b == 0.0) return false; |