summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2016-10-10 13:10:21 +0200
committerStephan Bergmann <sbergman@redhat.com>2016-10-10 13:10:48 +0200
commit1dac51334ba1440b158078f0dae765c7df55efb4 (patch)
tree3330259593797460d489610a9d3c5d957c50ec10
parent0db235d61f323cecbbc1db761ba19cb5da4b3e6f (diff)
Handle loplugin:fpcomparison false positives by whitelist
Change-Id: I58e2beb0695a27922856bd8f8988d9e4508aceb6
-rw-r--r--compilerplugins/clang/fpcomparison.cxx3
-rw-r--r--libreofficekit/source/gtk/lokdocview.cxx4
-rw-r--r--sal/rtl/math.cxx4
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;