compilerplugins/clang/redundantcast.cxx | 24 +++++++++++++----------- svx/source/sidebar/area/AreaPropertyPanel.cxx | 16 ++++++++-------- svx/source/tbxctrls/fillctrl.cxx | 12 ++++++------ 3 files changed, 27 insertions(+), 25 deletions(-)
New commits: commit 7d858ad0575b8be58dfb69773e2fba2cf95409c8 Author: Stephan Bergmann <sberg...@redhat.com> Date: Tue May 30 15:46:55 2017 +0200 Restrict loplugin:redundantcast to "real" casts Change-Id: Ifc9de898e5c9a084cbfd739625c679185c3a1534 diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx index 4ffef355bd6a..8b5eb3d90e91 100644 --- a/compilerplugins/clang/redundantcast.cxx +++ b/compilerplugins/clang/redundantcast.cxx @@ -480,17 +480,20 @@ bool RedundantCast::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr const * exp return true; if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/svl/qa/")) return true; - // the array-of-struct initialiser here makes clang unhappy if I remove all of the "SchemeInfo" names - if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/tools/source/fsys/urlobj.cxx")) - return true; - // 2 structs with compiled-generated constructors where I cannot remove the cast even though the cast is a NoOp - if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/tools/source/inet/inetmime.cxx")) - return true; - // some explicit use of std::initializer_list - if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/svx/source/sidebar/area/AreaPropertyPanel.cxx")) - return true; - if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/svx/source/tbxctrls/fillctrl.cxx")) + + // Restrict this to "real" casts (compared to uses of braced-init-list, like + // + // Foo{bar, baz} + // + // or + // + // std::initializer_list<Foo>{bar, baz} + // + // ), at least for now: + auto const sub = compat::getSubExprAsWritten(expr); + if (isa<InitListExpr>(sub) || isa<CXXStdInitializerListExpr>(sub)) { return true; + } // See the commit message of d0e7d020fa405ab94f19916ec96fbd4611da0031 // "socket.c -> socket.cxx" for the reason to have @@ -498,7 +501,6 @@ bool RedundantCast::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr const * exp // bool(FD_ISSET(...)) // // in sal/osl/unx/socket.cxx: - auto const sub = compat::getSubExprAsWritten(expr); //TODO: Better check that sub is exactly an expansion of FD_ISSET: if (sub->getLocEnd().isMacroID()) { for (auto loc = sub->getLocStart(); diff --git a/svx/source/sidebar/area/AreaPropertyPanel.cxx b/svx/source/sidebar/area/AreaPropertyPanel.cxx index 58f3aed8a68f..10f3798e5bdb 100644 --- a/svx/source/sidebar/area/AreaPropertyPanel.cxx +++ b/svx/source/sidebar/area/AreaPropertyPanel.cxx @@ -124,8 +124,8 @@ void AreaPropertyPanel::setFillStyleAndColor(const XFillStyleItem* pStyleItem, { GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_COLOR, SfxCallMode::RECORD, (pStyleItem) - ? std::initializer_list<SfxPoolItem const*>({ &rColorItem, pStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &rColorItem })); + ? std::initializer_list<SfxPoolItem const*>{ &rColorItem, pStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &rColorItem }); } void AreaPropertyPanel::setFillStyleAndGradient(const XFillStyleItem* pStyleItem, @@ -133,8 +133,8 @@ void AreaPropertyPanel::setFillStyleAndGradient(const XFillStyleItem* pStyleItem { GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_GRADIENT, SfxCallMode::RECORD, (pStyleItem) - ? std::initializer_list<SfxPoolItem const*>({ &rGradientItem, pStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &rGradientItem })); + ? std::initializer_list<SfxPoolItem const*>{ &rGradientItem, pStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &rGradientItem }); } void AreaPropertyPanel::setFillStyleAndHatch(const XFillStyleItem* pStyleItem, @@ -142,8 +142,8 @@ void AreaPropertyPanel::setFillStyleAndHatch(const XFillStyleItem* pStyleItem, { GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_HATCH, SfxCallMode::RECORD, (pStyleItem) - ? std::initializer_list<SfxPoolItem const*>({ &rHatchItem, pStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &rHatchItem })); + ? std::initializer_list<SfxPoolItem const*>{ &rHatchItem, pStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &rHatchItem }); } void AreaPropertyPanel::setFillStyleAndBitmap(const XFillStyleItem* pStyleItem, @@ -151,8 +151,8 @@ void AreaPropertyPanel::setFillStyleAndBitmap(const XFillStyleItem* pStyleItem, { GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_FILL_BITMAP, SfxCallMode::RECORD, (pStyleItem) - ? std::initializer_list<SfxPoolItem const*>({ &rBitmapItem, pStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &rBitmapItem })); + ? std::initializer_list<SfxPoolItem const*>{ &rBitmapItem, pStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &rBitmapItem }); } } } // end of namespace svx::sidebar diff --git a/svx/source/tbxctrls/fillctrl.cxx b/svx/source/tbxctrls/fillctrl.cxx index 0fdabe726ddd..7f9dfec5816a 100644 --- a/svx/source/tbxctrls/fillctrl.cxx +++ b/svx/source/tbxctrls/fillctrl.cxx @@ -788,8 +788,8 @@ IMPL_LINK_NOARG(SvxFillToolBoxControl, SelectFillAttrHdl, ListBox&, void) SfxViewFrame::Current()->GetDispatcher()->ExecuteList( SID_ATTR_FILL_GRADIENT, SfxCallMode::RECORD, (bFillStyleChange) - ? std::initializer_list<SfxPoolItem const*>({ &aXFillGradientItem, &aXFillStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &aXFillGradientItem })); + ? std::initializer_list<SfxPoolItem const*>{ &aXFillGradientItem, &aXFillStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &aXFillGradientItem }); } } @@ -821,8 +821,8 @@ IMPL_LINK_NOARG(SvxFillToolBoxControl, SelectFillAttrHdl, ListBox&, void) SfxViewFrame::Current()->GetDispatcher()->ExecuteList( SID_ATTR_FILL_HATCH, SfxCallMode::RECORD, (bFillStyleChange) - ? std::initializer_list<SfxPoolItem const*>({ &aXFillHatchItem, &aXFillStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &aXFillHatchItem })); + ? std::initializer_list<SfxPoolItem const*>{ &aXFillHatchItem, &aXFillStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &aXFillHatchItem }); } } @@ -854,8 +854,8 @@ IMPL_LINK_NOARG(SvxFillToolBoxControl, SelectFillAttrHdl, ListBox&, void) SfxViewFrame::Current()->GetDispatcher()->ExecuteList( SID_ATTR_FILL_BITMAP, SfxCallMode::RECORD, (bFillStyleChange) - ? std::initializer_list<SfxPoolItem const*>({ &aXFillBitmapItem, &aXFillStyleItem }) - : std::initializer_list<SfxPoolItem const*>({ &aXFillBitmapItem })); + ? std::initializer_list<SfxPoolItem const*>{ &aXFillBitmapItem, &aXFillStyleItem } + : std::initializer_list<SfxPoolItem const*>{ &aXFillBitmapItem }); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits