[Libreoffice-commits] core.git: compilerplugins/clang sc/qa sw/qa

Stephan Bergmann sbergman at redhat.com
Thu Jun 1 12:38:02 UTC 2017


 compilerplugins/clang/redundantcast.cxx            |   42 +++++----------------
 compilerplugins/clang/test/cppunitassertequals.cxx |    6 +--
 sc/qa/unit/bugfix-test.cxx                         |    2 -
 sc/qa/unit/subsequent_filters-test.cxx             |    2 -
 sw/qa/extras/odfexport/odfexport.cxx               |   12 +++---
 sw/qa/extras/ooxmlexport/ooxmlexport2.cxx          |   12 +++---
 sw/qa/extras/ooxmlexport/ooxmlexport4.cxx          |    2 -
 sw/qa/extras/ooxmlexport/ooxmlexport8.cxx          |    8 ++--
 sw/qa/extras/ooxmlimport/ooxmlimport.cxx           |    4 +-
 sw/qa/extras/uiwriter/uiwriter.cxx                 |    2 -
 sw/qa/extras/ww8import/ww8import.cxx               |    2 -
 11 files changed, 37 insertions(+), 57 deletions(-)

New commits:
commit 93aeaa75a4bfd5756b2d3ada59be4f452e320aab
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Thu Jun 1 14:37:02 2017 +0200

    Improve suppression of loplugin:redundantcast in CPPUNIT_ASSERT
    
    Change-Id: I65f95e7245f08592ea11cc75e1cf34dcbdf16b40

diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx
index 2c9a6fa49c89..de3353b295c1 100644
--- a/compilerplugins/clang/redundantcast.cxx
+++ b/compilerplugins/clang/redundantcast.cxx
@@ -456,37 +456,6 @@ bool RedundantCast::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr const * exp
     if (ignoreLocation(expr)) {
         return true;
     }
-    // A bit of a rabbit hole here,  these expressions look like
-    //   CPPUNIT_ASSERT( bool(aVec.find(p1.get()) == aVec.end()) )
-    // If I remove the bool, then another plugin wants me to change it to CPPUNIT_ASSERT_EQUAL,
-    // but that fails because CppUnit can't do "std::ostream << iterator".
-    StringRef aFileName = compiler.getSourceManager().getFilename(compiler.getSourceManager().getSpellingLoc(expr->getLocStart()));
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/o3tl/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/sfx2/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/postprocess/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/sc/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/cppu/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/vcl/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/cppuhelper/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/comphelper/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/connectivity/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/sal/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/salhelper/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/sw/qa/"))
-        return true;
-    if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/svl/qa/"))
-        return true;
 
     // Restrict this to "real" casts (compared to uses of braced-init-list, like
     //
@@ -502,6 +471,17 @@ bool RedundantCast::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr const * exp
         return true;
     }
 
+    // See "There might even be good reasons(?) not to warn inside explicit
+    // casts" block in compilerplugins/clang/test/cppunitassertequals.cxx:
+    auto const eloc = expr->getExprLoc();
+    if (compiler.getSourceManager().isMacroArgExpansion(eloc)) {
+        auto const name = Lexer::getImmediateMacroName(
+            eloc, compiler.getSourceManager(), compiler.getLangOpts());
+        if (name == "CPPUNIT_ASSERT" || name == "CPPUNIT_ASSERT_MESSAGE") {
+            return true;
+        }
+    }
+
     // See the commit message of d0e7d020fa405ab94f19916ec96fbd4611da0031
     // "socket.c -> socket.cxx" for the reason to have
     //
diff --git a/compilerplugins/clang/test/cppunitassertequals.cxx b/compilerplugins/clang/test/cppunitassertequals.cxx
index f0b03fa7ffb4..239de58853b3 100644
--- a/compilerplugins/clang/test/cppunitassertequals.cxx
+++ b/compilerplugins/clang/test/cppunitassertequals.cxx
@@ -48,9 +48,9 @@ void test(bool b1, bool b2, OUString const & s1, OUString const & s2, T t) {
     CPPUNIT_ASSERT(t.operator ==(t));
 
     // There might even be good reasons(?) not to warn inside explicit casts:
-    CPPUNIT_ASSERT(bool(b1 && b2)); // expected-error {{redundant functional cast from/to 'bool' [loplugin:redundantcast]}}
-    CPPUNIT_ASSERT(bool(b1 == b2)); // expected-error {{redundant functional cast from/to 'bool' [loplugin:redundantcast]}}
-    CPPUNIT_ASSERT(bool(s1 == s2)); // expected-error {{redundant functional cast from/to 'bool' [loplugin:redundantcast]}}
+    CPPUNIT_ASSERT(bool(b1 && b2));
+    CPPUNIT_ASSERT(bool(b1 == b2));
+    CPPUNIT_ASSERT(bool(s1 == s2));
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/sc/qa/unit/bugfix-test.cxx b/sc/qa/unit/bugfix-test.cxx
index a899ae468099..a4629a62cd2a 100644
--- a/sc/qa/unit/bugfix-test.cxx
+++ b/sc/qa/unit/bugfix-test.cxx
@@ -194,7 +194,7 @@ void ScFiltersTest::testTdf98657()
     xDocSh->DoHardRecalc();
 
     // this was a NaN before the fix
-    CPPUNIT_ASSERT_EQUAL(double(285.0), rDoc.GetValue(ScAddress(1, 1, 0)));
+    CPPUNIT_ASSERT_EQUAL(285.0, rDoc.GetValue(ScAddress(1, 1, 0)));
 
     xDocSh->DoClose();
 }
diff --git a/sc/qa/unit/subsequent_filters-test.cxx b/sc/qa/unit/subsequent_filters-test.cxx
index 7ca68d89f6e8..8bbad1cb6e60 100644
--- a/sc/qa/unit/subsequent_filters-test.cxx
+++ b/sc/qa/unit/subsequent_filters-test.cxx
@@ -3852,7 +3852,7 @@ void ScFiltersTest::testTdf100458()
     CPPUNIT_ASSERT_MESSAGE("Failed to open doc", xDocSh.is());
     ScDocument& rDoc = xDocSh->GetDocument();
     CPPUNIT_ASSERT(rDoc.HasValueData(0, 0, 0));
-    CPPUNIT_ASSERT_EQUAL(double(0.0), rDoc.GetValue(0,0,0));
+    CPPUNIT_ASSERT_EQUAL(0.0, rDoc.GetValue(0,0,0));
     CPPUNIT_ASSERT(!rDoc.HasStringData(0, 0, 0));
     xDocSh->DoClose();
 }
diff --git a/sw/qa/extras/odfexport/odfexport.cxx b/sw/qa/extras/odfexport/odfexport.cxx
index 13b9a368fb02..960878b43c0e 100644
--- a/sw/qa/extras/odfexport/odfexport.cxx
+++ b/sw/qa/extras/odfexport/odfexport.cxx
@@ -1301,9 +1301,9 @@ DECLARE_ODFEXPORT_TEST(testTableStyles2, "table_styles_2.odt")
     xCell1Style->getPropertyValue("CharColor") >>= nInt64;
     CPPUNIT_ASSERT_EQUAL(sal_Int64(0xFF6600), nInt64);
     xCell1Style->getPropertyValue("CharContoured") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(false), bBool);
+    CPPUNIT_ASSERT_EQUAL(false, bBool);
     xCell1Style->getPropertyValue("CharShadowed") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(true), bBool);
+    CPPUNIT_ASSERT_EQUAL(true, bBool);
     xCell1Style->getPropertyValue("CharStrikeout") >>= nInt32;
     CPPUNIT_ASSERT_EQUAL(sal_Int32(1), nInt32);
     xCell1Style->getPropertyValue("CharUnderline") >>= nInt32;
@@ -1366,9 +1366,9 @@ DECLARE_ODFEXPORT_TEST(testTableStyles2, "table_styles_2.odt")
     xCell1Style->getPropertyValue("CharColor") >>= nInt64;
     CPPUNIT_ASSERT_EQUAL(sal_Int64(0x9900FF), nInt64);
     xCell1Style->getPropertyValue("CharContoured") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(true), bBool);
+    CPPUNIT_ASSERT_EQUAL(true, bBool);
     xCell1Style->getPropertyValue("CharShadowed") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(false), bBool);
+    CPPUNIT_ASSERT_EQUAL(false, bBool);
     xCell1Style->getPropertyValue("CharStrikeout") >>= nInt32;
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nInt32);
     xCell1Style->getPropertyValue("CharUnderline") >>= nInt32;
@@ -1427,9 +1427,9 @@ DECLARE_ODFEXPORT_TEST(testTableStyles2, "table_styles_2.odt")
     xCell1Style->getPropertyValue("CharColor") >>= nInt64;
     CPPUNIT_ASSERT_EQUAL(sal_Int64(0), nInt64);
     xCell1Style->getPropertyValue("CharContoured") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(true), bBool);
+    CPPUNIT_ASSERT_EQUAL(true, bBool);
     xCell1Style->getPropertyValue("CharShadowed") >>= bBool;
-    CPPUNIT_ASSERT_EQUAL(bool(true), bBool);
+    CPPUNIT_ASSERT_EQUAL(true, bBool);
     xCell1Style->getPropertyValue("CharStrikeout") >>= nInt32;
     CPPUNIT_ASSERT_EQUAL(sal_Int32(0), nInt32);
     xCell1Style->getPropertyValue("CharUnderline") >>= nInt32;
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
index 9a13c5aaef21..d4fa7a410701 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport2.cxx
@@ -650,9 +650,9 @@ DECLARE_OOXMLEXPORT_TEST(testFdo65655, "fdo65655.docx")
     uno::Reference<beans::XPropertySet> xPropertySet(getStyles("PageStyles")->getByName("Standard"), uno::UNO_QUERY);
     bool bValue = false;
     xPropertySet->getPropertyValue("HeaderIsShared") >>= bValue;
-    CPPUNIT_ASSERT_EQUAL(false, bool(bValue));
+    CPPUNIT_ASSERT_EQUAL(false, bValue);
     xPropertySet->getPropertyValue("FooterIsShared") >>= bValue;
-    CPPUNIT_ASSERT_EQUAL(false, bool(bValue));
+    CPPUNIT_ASSERT_EQUAL(false, bValue);
 }
 
 DECLARE_OOXMLEXPORT_TEST(testFDO63053, "fdo63053.docx")
@@ -965,16 +965,16 @@ DECLARE_OOXMLEXPORT_TEST(testFdo65718, "fdo65718.docx")
     // the actual attributes where 'distT', 'distB', 'distL', 'distR'
     uno::Reference<beans::XPropertySet> xPropertySet(getShape(1), uno::UNO_QUERY);
 
-    CPPUNIT_ASSERT_EQUAL(sal_Int32( oox::drawingml::convertEmuToHmm(0) ), getProperty<sal_Int32>(xPropertySet, "TopMargin") );
-    CPPUNIT_ASSERT_EQUAL(sal_Int32( oox::drawingml::convertEmuToHmm(0) ), getProperty<sal_Int32>(xPropertySet, "BottomMargin") );
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(0), getProperty<sal_Int32>(xPropertySet, "TopMargin") );
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(0), getProperty<sal_Int32>(xPropertySet, "BottomMargin") );
 
     // 'getProperty' return 318 (instead of 317.5)
     // I think this is because it returns an integer, instead of a float.
     // The actual exporting to DOCX exports the correct value (114300 = 317.5 * 360)
     // The exporting to DOCX uses the 'SvxLRSpacing' that stores the value in TWIPS (180 TWIPS)
     // However, the 'LeftMargin' property is an integer property that holds that value in 'MM100' (should hold 317.5, but it is 318)
-    CPPUNIT_ASSERT_EQUAL(sal_Int32( oox::drawingml::convertEmuToHmm(114300) ), getProperty<sal_Int32>(xPropertySet, "LeftMargin") );
-    CPPUNIT_ASSERT_EQUAL(sal_Int32( oox::drawingml::convertEmuToHmm(114300) ), getProperty<sal_Int32>(xPropertySet, "RightMargin") );
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(114300), getProperty<sal_Int32>(xPropertySet, "LeftMargin") );
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(114300), getProperty<sal_Int32>(xPropertySet, "RightMargin") );
 }
 
 DECLARE_OOXMLEXPORT_TEST(testFdo64350, "fdo64350.docx")
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
index 1d94e25938aa..e80e348ca196 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport4.cxx
@@ -693,7 +693,7 @@ DECLARE_OOXMLEXPORT_TEST(testComboBoxControl, "combobox-control.docx")
     CPPUNIT_ASSERT_EQUAL(OUString("Manolo"), getProperty<OUString>(xControl->getControl(), "Text"));
 
     uno::Sequence<OUString> aItems = getProperty< uno::Sequence<OUString> >(xControl->getControl(), "StringItemList");
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), sal_Int32(aItems.getLength()));
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(2), aItems.getLength());
     CPPUNIT_ASSERT_EQUAL(OUString("manolo"), aItems[0]);
     CPPUNIT_ASSERT_EQUAL(OUString("pepito"), aItems[1]);
 }
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
index 9fdad718157e..7fc5d19b2db3 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport8.cxx
@@ -320,7 +320,7 @@ DECLARE_OOXMLEXPORT_TEST(testN764005, "n764005.docx")
     CPPUNIT_ASSERT(eValue != text::TextContentAnchorType_AS_CHARACTER);
     bool bValue = true;
     xPropertySet->getPropertyValue("Opaque") >>= bValue;
-    CPPUNIT_ASSERT_EQUAL(false, bool(bValue));
+    CPPUNIT_ASSERT_EQUAL(false, bValue);
 }
 
 DECLARE_OOXMLEXPORT_TEST(testN766481, "n766481.docx")
@@ -877,7 +877,7 @@ DECLARE_OOXMLEXPORT_TEST(testfdo78904, "fdo78904.docx")
     if (xIndexAccess->getCount())
     {
         uno::Reference<beans::XPropertySet> xFrame(xIndexAccess->getByIndex(0), uno::UNO_QUERY);
-        CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(0)), getProperty<sal_Int32>(xFrame, "HoriOrientPosition"));
+        CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(0), getProperty<sal_Int32>(xFrame, "HoriOrientPosition"));
     }
 }
 
@@ -1213,7 +1213,7 @@ DECLARE_OOXMLEXPORT_TEST(testWpsOnly, "wps-only.docx")
     CPPUNIT_ASSERT_EQUAL(text::TextContentAnchorType_AT_PARAGRAPH, eValue);
 
     // Check position, it was 0. This is a shape, so use getPosition(), not a property.
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(671830)), xShape->getPosition().X);
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(671830), xShape->getPosition().X);
 
     // Left margin was 0, instead of 114300 EMU's.
     CPPUNIT_ASSERT_EQUAL(sal_Int32(318), getProperty<sal_Int32>(xShape, "LeftMargin"));
@@ -1232,7 +1232,7 @@ DECLARE_OOXMLEXPORT_TEST(testWpgOnly, "wpg-only.docx")
 {
     uno::Reference<drawing::XShape> xShape = getShape(1);
     // Check position, it was nearly 0. This is a shape, so use getPosition(), not a property.
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(548005)), xShape->getPosition().X);
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(548005), xShape->getPosition().X);
 }
 
 DECLARE_OOXMLEXPORT_TEST(testWpgNested, "wpg-nested.docx")
diff --git a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
index ebebedda914b..15aebdab076b 100644
--- a/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
+++ b/sw/qa/extras/ooxmlimport/ooxmlimport.cxx
@@ -606,7 +606,7 @@ DECLARE_OOXMLIMPORT_TEST(testFdo43641, "fdo43641.docx")
     uno::Reference<container::XIndexAccess> xGroupShape(getShape(1), uno::UNO_QUERY);
     uno::Reference<drawing::XShape> xLine(xGroupShape->getByIndex(1), uno::UNO_QUERY);
     // This was 2200, not 2579 in mm100, i.e. the size of the line shape was incorrect.
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(928440)), xLine->getSize().Width);
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(928440), xLine->getSize().Width);
 }
 
 DECLARE_OOXMLIMPORT_TEST(testGroupshapeSdt, "groupshape-sdt.docx")
@@ -764,7 +764,7 @@ DECLARE_OOXMLIMPORT_TEST(textboxWpsOnly, "textbox-wps-only.docx")
 DECLARE_OOXMLIMPORT_TEST(testGroupshapeRelsize, "groupshape-relsize.docx")
 {
     // This was 43760, i.e. the height of the groupshape was larger than the page height, which is obviously incorrect.
-    CPPUNIT_ASSERT_EQUAL(sal_Int32(oox::drawingml::convertEmuToHmm(9142730)), getShape(1)->getSize().Height);
+    CPPUNIT_ASSERT_EQUAL(oox::drawingml::convertEmuToHmm(9142730), getShape(1)->getSize().Height);
 }
 
 DECLARE_OOXMLIMPORT_TEST(testOleAnchor, "ole-anchor.docx")
diff --git a/sw/qa/extras/uiwriter/uiwriter.cxx b/sw/qa/extras/uiwriter/uiwriter.cxx
index 88be24d04a53..2452ad422c21 100644
--- a/sw/qa/extras/uiwriter/uiwriter.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter.cxx
@@ -3193,7 +3193,7 @@ void SwUiWriterTest::testTdf88899()
     alocale.Language = "en";
     alocale.Country = "US";
     sal_Int16 key = xNumFormat->getStandardFormat(util::NumberFormat::DATETIME, alocale);
-    xPropSet->setPropertyValue("NumberFormat", uno::makeAny(sal_Int16(key)));
+    xPropSet->setPropertyValue("NumberFormat", uno::makeAny(key));
     //Inserting Text Content
     uno::Reference<text::XTextDocument> xTextDocument(mxComponent, uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xTextRange(xTextDocument->getText(), uno::UNO_QUERY);
diff --git a/sw/qa/extras/ww8import/ww8import.cxx b/sw/qa/extras/ww8import/ww8import.cxx
index 4c2c83499405..52cab54b2e61 100644
--- a/sw/qa/extras/ww8import/ww8import.cxx
+++ b/sw/qa/extras/ww8import/ww8import.cxx
@@ -95,7 +95,7 @@ DECLARE_WW8IMPORT_TEST( testTdf105570, "tdf105570.doc" )
     SwDoc*           pDoc         = pTextDoc->GetDocShell()->GetDoc();
     SwWrtShell*      pWrtShell    = pDoc->GetDocShell()->GetWrtShell();
     SwShellCursor*   pShellCursor = pWrtShell->getShellCursor( false );
-    SwNodeIndex      aIdx         = SwNodeIndex( pShellCursor->Start()->nNode );
+    SwNodeIndex      aIdx         = pShellCursor->Start()->nNode;
 
     // Find first table
     SwTableNode*     pTableNd     = aIdx.GetNode().FindTableNode();


More information about the Libreoffice-commits mailing list