[Libreoffice-commits] core.git: compilerplugins/clang sc/source solenv/CompilerTest_compilerplugins_clang.mk vcl/unx

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sun Dec 2 10:47:03 UTC 2018


 compilerplugins/clang/intvsfloat.cxx         |    6 +--
 compilerplugins/clang/test/intvsfloat.cxx    |   43 +++++++++++----------------
 sc/source/ui/app/inputwin.cxx                |    2 -
 solenv/CompilerTest_compilerplugins_clang.mk |    1 
 vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx    |    2 -
 5 files changed, 24 insertions(+), 30 deletions(-)

New commits:
commit 93e0622d0097c90effc8bec5f31cf0c12a20d88b
Author:     Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Fri Nov 30 13:25:01 2018 +0200
Commit:     Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sun Dec 2 11:46:39 2018 +0100

    loplugin:intvsfloat get this working reliably
    
    Change-Id: Ifdf1a152f6bc2e2f6edae97a5191120f630f7e49
    Reviewed-on: https://gerrit.libreoffice.org/64374
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/compilerplugins/clang/store/intvsfloat.cxx b/compilerplugins/clang/intvsfloat.cxx
similarity index 96%
rename from compilerplugins/clang/store/intvsfloat.cxx
rename to compilerplugins/clang/intvsfloat.cxx
index 3189d982d9c0..e9ee3fa9b306 100644
--- a/compilerplugins/clang/store/intvsfloat.cxx
+++ b/compilerplugins/clang/intvsfloat.cxx
@@ -16,9 +16,7 @@
 
 TODO multiplying/otherop on a combination of a float and int, and then truncating to int. like this:
     float getRotation() {}
-    int moRotation;
-    moRotation = -F_PI180 * 90 * getRotation();
-
+    int moRotation = -F_PI180 * 90 * getRotation();
 */
 namespace
 {
@@ -90,6 +88,8 @@ llvm::Optional<double> IntVsFloat::getExprValue(Expr const* expr)
     // Of the available clang Evaluate* APIs, this is the __only__ one that produces useful output
     // (as of 17 Aug 2018 checkout of clang, ie. towards clang 7)
 
+    if (expr->isValueDependent())
+        return llvm::Optional<double>();
     Expr::EvalResult evalResult;
     if (!expr->EvaluateAsRValue(evalResult, compiler.getASTContext()))
         return llvm::Optional<double>();
diff --git a/compilerplugins/clang/test/intvsfloat.cxx b/compilerplugins/clang/test/intvsfloat.cxx
index 7c753c3667ab..4746873e7bba 100644
--- a/compilerplugins/clang/test/intvsfloat.cxx
+++ b/compilerplugins/clang/test/intvsfloat.cxx
@@ -18,26 +18,22 @@ struct Class1
 
 void func1(Class1 const& class1)
 {
-    if (1
-        == PI) // expected-error {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    // expected-error at +1 {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    if (1 == PI)
         return;
-    if (1
-        == class1
-               .PI) // expected-error {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    // expected-error at +1 {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    if (1 == class1.PI)
         return;
-    if (true
-        == class1
-               .PI) // expected-error {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    // expected-error at +1 {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    if (true == class1.PI)
         return;
     if (1 == class1.getInt()) // no warning expected
         return;
-    if (1
-        == class1
-               .E()) // expected-error {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    // expected-error at +1 {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    if (1 == class1.E())
         return;
-    if (true
-        == class1
-               .E()) // expected-error {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    // expected-error at +1 {{comparing integer to float constant, can never be true [loplugin:intvsfloat]}}
+    if (true == class1.E())
         return;
     if (1 == class1.getFloat()) // no warning expected
         return;
@@ -45,24 +41,21 @@ void func1(Class1 const& class1)
 
 void func2(Class1 const& class1)
 {
-    int i0
-        = PI; // expected-error {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    // expected-error at +1 {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    int i0 = PI;
     (void)i0;
-    int i1
-        = class1
-              .PI; // expected-error {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    // expected-error at +1 {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    int i1 = class1.PI;
     (void)i1;
-    int i2
-        = class1
-              .E(); // expected-error {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    // expected-error at +1 {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    int i2 = class1.E();
     (void)i2;
     int i3 = class1.getFloat(); // no warning expected
     (void)i3;
     int i4 = class1.getInt(); // no warning expected
     (void)i4;
-    bool b1
-        = class1
-              .E(); // expected-error {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    // expected-error at +1 {{assigning constant float value to int truncates data [loplugin:intvsfloat]}}
+    bool b1 = class1.E();
     (void)b1;
 }
 
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index d7f51e0c7b7b..d2dc929d6043 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -677,7 +677,7 @@ void ScInputWindow::MouseMove( const MouseEvent& rMEvt )
     if (bInResize)
     {
         // detect direction
-        long nResizeThreshold = (long(TBX_WINDOW_HEIGHT) * 0.7);
+        long nResizeThreshold = long(TBX_WINDOW_HEIGHT * 0.7);
         bool bResetPointerPos = false;
 
         // Detect attempt to expand toolbar too much
diff --git a/solenv/CompilerTest_compilerplugins_clang.mk b/solenv/CompilerTest_compilerplugins_clang.mk
index 091e11393e5b..e50103e39973 100644
--- a/solenv/CompilerTest_compilerplugins_clang.mk
+++ b/solenv/CompilerTest_compilerplugins_clang.mk
@@ -28,6 +28,7 @@ $(eval $(call gb_CompilerTest_add_exception_objects,compilerplugins_clang, \
     compilerplugins/clang/test/emptyif \
     compilerplugins/clang/test/externvar \
     compilerplugins/clang/test/expressionalwayszero \
+    compilerplugins/clang/test/intvsfloat \
     compilerplugins/clang/test/faileddyncast \
     compilerplugins/clang/test/finalprotected \
     compilerplugins/clang/test/flatten \
diff --git a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
index 31c665e1af05..f78eb392e1af 100644
--- a/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
+++ b/vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx
@@ -1148,7 +1148,7 @@ void GtkSalGraphics::PaintSpinButton(GtkStateFlags flags,
     }
 }
 
-#define FALLBACK_ARROW_SIZE 11 * 0.85
+#define FALLBACK_ARROW_SIZE gint(11 * 0.85)
 
 tools::Rectangle GtkSalGraphics::NWGetComboBoxButtonRect(
                                                    ControlPart nPart,


More information about the Libreoffice-commits mailing list