Activate the "suspicious cast to sal_Bool" parts of loplugin:salbool

Change-Id: I78a368ef2899b2462251b45a327fc7b1f31fe764
This commit is contained in:
Stephan Bergmann 2014-07-01 17:38:02 +02:00
parent 485a7c880f
commit 9263b101c3
6 changed files with 38 additions and 27 deletions

View File

@ -205,7 +205,7 @@ sal_Bool SAL_CALL OGLPlayer::isPlaybackLoop() throw ( uno::RuntimeException, std
{ {
osl::MutexGuard aGuard(m_aMutex); osl::MutexGuard aGuard(m_aMutex);
assert(m_pHandle); assert(m_pHandle);
return (sal_Bool)gltf_animation_get_looping(m_pHandle); return gltf_animation_get_looping(m_pHandle) != 0;
} }
void SAL_CALL OGLPlayer::setVolumeDB( sal_Int16 /*nVolumDB*/ ) throw ( uno::RuntimeException, std::exception ) void SAL_CALL OGLPlayer::setVolumeDB( sal_Int16 /*nVolumDB*/ ) throw ( uno::RuntimeException, std::exception )

View File

@ -9,6 +9,7 @@
#include <algorithm> #include <algorithm>
#include <cassert> #include <cassert>
#include <cstdlib>
#include <set> #include <set>
#include <string> #include <string>
@ -106,7 +107,10 @@ class SalBool:
public RecursiveASTVisitor<SalBool>, public loplugin::RewritePlugin public RecursiveASTVisitor<SalBool>, public loplugin::RewritePlugin
{ {
public: public:
explicit SalBool(InstantiationData const & data): RewritePlugin(data) {} explicit SalBool(InstantiationData const & data):
RewritePlugin(data),
fullMode_(std::getenv("loplugin:salbool") != nullptr)
{}
virtual void run() override; virtual void run() override;
@ -139,6 +143,7 @@ private:
bool rewrite(SourceLocation location); bool rewrite(SourceLocation location);
bool fullMode_;
std::set<VarDecl const *> varDecls_; std::set<VarDecl const *> varDecls_;
}; };
@ -178,7 +183,7 @@ void SalBool::run() {
} }
} }
} }
if (!rewrite(loc)) { if (fullMode_ && !rewrite(loc)) {
report( report(
DiagnosticsEngine::Warning, DiagnosticsEngine::Warning,
"VarDecl, use \"bool\" instead of \"sal_Bool\"", loc) "VarDecl, use \"bool\" instead of \"sal_Bool\"", loc)
@ -322,13 +327,15 @@ bool SalBool::VisitParmVarDecl(ParmVarDecl const * decl) {
// with a "mismatch" error before the rewriter had a chance // with a "mismatch" error before the rewriter had a chance
// to act upon the definition (but use the heuristic of // to act upon the definition (but use the heuristic of
// assuming pure virtual functions do not have definitions): // assuming pure virtual functions do not have definitions):
if (!((isInMainFile( if (fullMode_
compiler.getSourceManager().getSpellingLoc( && !((compat::isInMainFile(
dyn_cast<FunctionDecl>( compiler.getSourceManager(),
decl->getDeclContext()) compiler.getSourceManager().getSpellingLoc(
->getNameInfo().getLoc())) dyn_cast<FunctionDecl>(
|| f->isDefined() || f->isPure()) decl->getDeclContext())
&& rewrite(loc))) ->getNameInfo().getLoc()))
|| f->isDefined() || f->isPure())
&& rewrite(loc)))
{ {
report( report(
DiagnosticsEngine::Warning, DiagnosticsEngine::Warning,
@ -409,7 +416,7 @@ bool SalBool::VisitFieldDecl(FieldDecl const * decl) {
} }
} }
} }
if (!rewrite(loc)) { if (fullMode_ && !rewrite(loc)) {
report( report(
DiagnosticsEngine::Warning, DiagnosticsEngine::Warning,
"FieldDecl, use \"bool\" instead of \"sal_Bool\"", loc) "FieldDecl, use \"bool\" instead of \"sal_Bool\"", loc)
@ -467,11 +474,13 @@ bool SalBool::VisitFunctionDecl(FunctionDecl const * decl) {
// rewriter had a chance to act upon the definition (but use the // rewriter had a chance to act upon the definition (but use the
// heuristic of assuming pure virtual functions do not have // heuristic of assuming pure virtual functions do not have
// definitions): // definitions):
if (!((isInMainFile( if (fullMode_
compiler.getSourceManager().getSpellingLoc( && !((compat::isInMainFile(
decl->getNameInfo().getLoc())) compiler.getSourceManager(),
|| f->isDefined() || f->isPure()) compiler.getSourceManager().getSpellingLoc(
&& rewrite(loc))) decl->getNameInfo().getLoc()))
|| f->isDefined() || f->isPure())
&& rewrite(loc)))
{ {
report( report(
DiagnosticsEngine::Warning, DiagnosticsEngine::Warning,
@ -487,7 +496,9 @@ bool SalBool::VisitValueDecl(ValueDecl const * decl) {
if (ignoreLocation(decl)) { if (ignoreLocation(decl)) {
return true; return true;
} }
if (isSalBool(decl->getType()) && !rewrite(decl->getLocStart())) { if (fullMode_ && isSalBool(decl->getType())
&& !rewrite(decl->getLocStart()))
{
report( report(
DiagnosticsEngine::Warning, DiagnosticsEngine::Warning,
"ValueDecl, use \"bool\" instead of \"sal_Bool\"", "ValueDecl, use \"bool\" instead of \"sal_Bool\"",
@ -498,7 +509,7 @@ bool SalBool::VisitValueDecl(ValueDecl const * decl) {
} }
bool SalBool::isInSpecialMainFile(SourceLocation spellingLocation) const { bool SalBool::isInSpecialMainFile(SourceLocation spellingLocation) const {
return compat::isInMainFile(spellingLocation) return compat::isInMainFile(compiler.getSourceManager(), spellingLocation)
&& (compiler.getSourceManager().getFilename(spellingLocation) && (compiler.getSourceManager().getFilename(spellingLocation)
== SRCDIR "/cppu/qa/test_any.cxx"); == SRCDIR "/cppu/qa/test_any.cxx");
} }

View File

@ -968,7 +968,7 @@ void KabResultSet::getFastPropertyValue(
switch (nHandle) switch (nHandle)
{ {
case PROPERTY_ID_ISBOOKMARKABLE: case PROPERTY_ID_ISBOOKMARKABLE:
_rValue <<= (sal_Bool)sal_False; _rValue <<= false;
break; break;
case PROPERTY_ID_CURSORNAME: case PROPERTY_ID_CURSORNAME:
case PROPERTY_ID_RESULTSETCONCURRENCY: case PROPERTY_ID_RESULTSETCONCURRENCY:

View File

@ -56,9 +56,9 @@ namespace svt { namespace table
namespace namespace
{ {
template< class ATTRIBUTE_TYPE > template< class T1, class T2 >
void lcl_set( Reference< XGridColumn > const & i_column, void ( SAL_CALL XGridColumn::*i_setter )( ATTRIBUTE_TYPE ), void lcl_set( Reference< XGridColumn > const & i_column, void ( SAL_CALL XGridColumn::*i_setter )( T1 ),
ATTRIBUTE_TYPE i_value ) T2 i_value )
{ {
try try
{ {
@ -334,7 +334,7 @@ namespace svt { namespace table
void UnoGridColumnFacade::setResizable( bool i_resizable ) void UnoGridColumnFacade::setResizable( bool i_resizable )
{ {
ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" ); ENSURE_OR_RETURN_VOID( m_xGridColumn.is(), "UnoGridColumnFacade: already disposed!" );
lcl_set( m_xGridColumn, &XGridColumn::setResizeable, sal_Bool( i_resizable ) ); lcl_set( m_xGridColumn, &XGridColumn::setResizeable, i_resizable );
} }

View File

@ -152,9 +152,9 @@ void SvxPageWindow::Paint(const Rectangle&)
else else
{ {
// Left and right page are different -> draw two pages if possible // Left and right page are different -> draw two pages if possible
DrawPage(Point(0,nYPos),false,(sal_Bool)(eUsage & SVX_PAGE_LEFT)); DrawPage(Point(0,nYPos),false,(eUsage & SVX_PAGE_LEFT) != 0);
DrawPage(Point(aSize.Width() + aSize.Width() / 8,nYPos),true, DrawPage(Point(aSize.Width() + aSize.Width() / 8,nYPos),true,
(sal_Bool)(eUsage & SVX_PAGE_RIGHT)); (eUsage & SVX_PAGE_RIGHT) != 0);
} }
} }

View File

@ -243,8 +243,8 @@ DECLARE_RTFIMPORT_TEST(testN750757, "n750757.rtf")
uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY); uno::Reference<container::XEnumerationAccess> xParaEnumAccess(xTextDocument->getText(), uno::UNO_QUERY);
uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration(); uno::Reference<container::XEnumeration> xParaEnum = xParaEnumAccess->createEnumeration();
CPPUNIT_ASSERT_EQUAL(sal_Bool(false), getProperty<sal_Bool>(xParaEnum->nextElement(), "ParaContextMargin")); CPPUNIT_ASSERT_EQUAL(false, bool(getProperty<sal_Bool>(xParaEnum->nextElement(), "ParaContextMargin")));
CPPUNIT_ASSERT_EQUAL(sal_Bool(true), getProperty<sal_Bool>(xParaEnum->nextElement(), "ParaContextMargin")); CPPUNIT_ASSERT_EQUAL(true, bool(getProperty<sal_Bool>(xParaEnum->nextElement(), "ParaContextMargin")));
} }
DECLARE_RTFIMPORT_TEST(testFdo45563, "fdo45563.rtf") DECLARE_RTFIMPORT_TEST(testFdo45563, "fdo45563.rtf")