summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2023-07-20 15:55:59 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2023-07-21 11:05:05 +0200
commit1f2ff4a0a31c7919bc6d4e0ac63024252f0bd889 (patch)
tree3c9747c3141c1078718fe8ebb0e8e8587fbe3418
parent7aca5ee1192b45d05a601946a5c784b8c5bd61bd (diff)
loplugin:redundantcast small improvement
Change-Id: I2c96b367138b94d6178a3c4a0f83049f13a04f82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--basegfx/source/polygon/b2dsvgpolypolygon.cxx4
-rw-r--r--compilerplugins/clang/redundantcast.cxx9
-rw-r--r--compilerplugins/clang/test/redundantcast.cxx12
-rw-r--r--emfio/source/reader/mtftools.cxx2
-rw-r--r--sd/source/ui/dlg/animobjs.cxx2
-rw-r--r--sd/source/ui/dlg/titledockwin.cxx2
-rw-r--r--toolkit/source/controls/table/gridtablerenderer.cxx2
-rw-r--r--vcl/source/window/window.cxx2
8 files changed, 28 insertions, 7 deletions
diff --git a/basegfx/source/polygon/b2dsvgpolypolygon.cxx b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
index 6bb34614c6ae..fe4f646eb3ba 100644
--- a/basegfx/source/polygon/b2dsvgpolypolygon.cxx
+++ b/basegfx/source/polygon/b2dsvgpolypolygon.cxx
@@ -272,7 +272,7 @@ namespace basegfx::utils
// get first control point. It's the reflection of the PrevControlPoint
// of the last point. If not existent, use current point (see SVG)
- B2DPoint aPrevControl(B2DPoint(nLastX, nLastY));
+ B2DPoint aPrevControl(nLastX, nLastY);
const sal_uInt32 nIndex(aCurrPoly.count() - 1);
if(aCurrPoly.areControlPointsUsed() && aCurrPoly.isPrevControlPointUsed(nIndex))
@@ -421,7 +421,7 @@ namespace basegfx::utils
// get first control point. It's the reflection of the PrevControlPoint
// of the last point. If not existent, use current point (see SVG)
- B2DPoint aPrevControl(B2DPoint(nLastX, nLastY));
+ B2DPoint aPrevControl(nLastX, nLastY);
const sal_uInt32 nIndex(aCurrPoly.count() - 1);
const B2DPoint aPrevPoint(aCurrPoly.getB2DPoint(nIndex));
diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx
index 80485e0e9bd6..eea609005228 100644
--- a/compilerplugins/clang/redundantcast.cxx
+++ b/compilerplugins/clang/redundantcast.cxx
@@ -373,6 +373,15 @@ bool RedundantCast::VisitVarDecl(VarDecl const * varDecl) {
if (!varDecl->getInit())
return true;
visitAssign(varDecl->getType(), varDecl->getInit());
+ if (varDecl->getInitStyle() != VarDecl::CInit
+ && isa<CXXTemporaryObjectExpr>(varDecl->getInit())
+ && !compiler.getSourceManager().isMacroBodyExpansion(varDecl->getInit()->getBeginLoc()))
+ {
+ report(
+ DiagnosticsEngine::Warning, "redundant functional cast",
+ varDecl->getBeginLoc())
+ << varDecl->getSourceRange();
+ }
return true;
}
diff --git a/compilerplugins/clang/test/redundantcast.cxx b/compilerplugins/clang/test/redundantcast.cxx
index 0c1087ab32af..f3573d0ad20d 100644
--- a/compilerplugins/clang/test/redundantcast.cxx
+++ b/compilerplugins/clang/test/redundantcast.cxx
@@ -473,6 +473,18 @@ void testSalIntTypes() {
(void) static_cast<Other>(n); // doesn't warn either
}
+void testFunctionalCast2() {
+ struct S1 { S1(int, int, int, int) {} };
+
+ // expected-error@+1 {{redundant functional cast [loplugin:redundantcast]}}
+ S1 aTitleBarBox(S1(0, 0, 0, 0));
+ (void)aTitleBarBox;
+
+ // no warning expected
+#define S1_COL S1(0,0,0,0)
+ S1 aTest2(S1_COL);
+}
+
int main() {
testConstCast();
testStaticCast();
diff --git a/emfio/source/reader/mtftools.cxx b/emfio/source/reader/mtftools.cxx
index f2446e1864de..0ba13d49727a 100644
--- a/emfio/source/reader/mtftools.cxx
+++ b/emfio/source/reader/mtftools.cxx
@@ -256,7 +256,7 @@ namespace emfio
aFont.SetOrientation( Degree10(static_cast<sal_Int16>(rFont.lfEscapement)) );
- Size aFontSize( Size( rFont.lfWidth, rFont.lfHeight ) );
+ Size aFontSize( rFont.lfWidth, rFont.lfHeight );
if ( rFont.lfHeight > 0 )
{
// #i117968# VirtualDevice is not thread safe, but filter is used in multithreading
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index 9abb892e037c..0174855e1825 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -516,7 +516,7 @@ void AnimationWindow::UpdateControl(bool const bDisableCtrls)
ScopedVclPtrInstance< VirtualDevice > pVD;
::tools::Rectangle aObjRect( pObject->GetCurrentBoundRect() );
Size aObjSize( aObjRect.GetSize() );
- Point aOrigin( Point( -aObjRect.Left(), -aObjRect.Top() ) );
+ Point aOrigin( -aObjRect.Left(), -aObjRect.Top() );
MapMode aMap( pVD->GetMapMode() );
aMap.SetMapUnit( MapUnit::Map100thMM );
aMap.SetOrigin( aOrigin );
diff --git a/sd/source/ui/dlg/titledockwin.cxx b/sd/source/ui/dlg/titledockwin.cxx
index 5a3f04c70f30..0550f05d2f8b 100644
--- a/sd/source/ui/dlg/titledockwin.cxx
+++ b/sd/source/ui/dlg/titledockwin.cxx
@@ -155,7 +155,7 @@ namespace sd
int nInnerBottom = nOuterBottom - m_aBorder.Bottom() + 1;
// Paint title bar background.
- ::tools::Rectangle aTitleBarBox(::tools::Rectangle(nOuterLeft, 0, nOuterRight, nInnerTop - 1));
+ ::tools::Rectangle aTitleBarBox(nOuterLeft, 0, nOuterRight, nInnerTop - 1);
rRenderContext.DrawRect(aTitleBarBox);
if (nInnerLeft > nOuterLeft)
diff --git a/toolkit/source/controls/table/gridtablerenderer.cxx b/toolkit/source/controls/table/gridtablerenderer.cxx
index cb3fe2ec1228..aa49f4afddc1 100644
--- a/toolkit/source/controls/table/gridtablerenderer.cxx
+++ b/toolkit/source/controls/table/gridtablerenderer.cxx
@@ -444,7 +444,7 @@ namespace svt::table
void GridTableRenderer::impl_paintCellImage( CellRenderContext const & i_context, Image const & i_image )
{
- Point imagePos( Point( i_context.aContentArea.Left(), i_context.aContentArea.Top() ) );
+ Point imagePos( i_context.aContentArea.Left(), i_context.aContentArea.Top() );
Size imageSize = i_image.GetSizePixel();
if ( i_context.aContentArea.GetWidth() > imageSize.Width() )
{
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 79d966383877..6e5575b9013c 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1519,7 +1519,7 @@ void Window::ImplPosSizeWindow( tools::Long nX, tools::Long nY,
if ( nFlags & PosSizeFlags::X )
{
tools::Long nOrgX = nX;
- Point aPtDev( Point( nX+GetOutDev()->mnOutOffX, 0 ) );
+ Point aPtDev( nX+GetOutDev()->mnOutOffX, 0 );
OutputDevice *pOutDev = GetOutDev();
if( pOutDev->HasMirroredGraphics() )
{