diff options
-rw-r--r-- | compilerplugins/clang/intvsfloat.cxx (renamed from compilerplugins/clang/store/intvsfloat.cxx) | 6 | ||||
-rw-r--r-- | compilerplugins/clang/test/intvsfloat.cxx | 43 | ||||
-rw-r--r-- | sc/source/ui/app/inputwin.cxx | 2 | ||||
-rw-r--r-- | solenv/CompilerTest_compilerplugins_clang.mk | 1 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3salnativewidgets-gtk.cxx | 2 |
5 files changed, 24 insertions, 30 deletions
diff --git a/compilerplugins/clang/store/intvsfloat.cxx b/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@+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@+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@+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@+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@+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@+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@+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@+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@+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, |