diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-02-19 17:38:24 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-02-19 20:32:00 +0100 |
commit | 38642dafb6dd4aed75d70a9409f104c856802e7b (patch) | |
tree | 562a697dd5666c1727fd0497415866c405f3c070 | |
parent | 87d46dc80a607ea66e52c3dc81dea20fd4fe07f8 (diff) |
Better loplugin:unnecessaryparen check for vexing parse
Change-Id: Id7b09a8556da25b81c056d5811ba721e781682d6
Reviewed-on: https://gerrit.libreoffice.org/68025
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
-rw-r--r-- | compilerplugins/clang/unnecessaryparen.cxx | 5 | ||||
-rw-r--r-- | extensions/source/propctrlr/propertycomposer.cxx | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/compilerplugins/clang/unnecessaryparen.cxx b/compilerplugins/clang/unnecessaryparen.cxx index a39bcc813a63..287c080afb13 100644 --- a/compilerplugins/clang/unnecessaryparen.cxx +++ b/compilerplugins/clang/unnecessaryparen.cxx @@ -447,8 +447,9 @@ bool UnnecessaryParen::VisitVarDecl(const VarDecl* varDecl) return true; // these two are for "parentheses were disambiguated as a function declaration [-Werror,-Wvexing-parse]" - if (isa<CXXBindTemporaryExpr>(sub) - || isa<CXXFunctionalCastExpr>(sub)) + auto const sub2 = sub->IgnoreImplicit(); + if (isa<CXXTemporaryObjectExpr>(sub2) + || isa<CXXFunctionalCastExpr>(sub2)) return true; report( diff --git a/extensions/source/propctrlr/propertycomposer.cxx b/extensions/source/propctrlr/propertycomposer.cxx index 63d4c72790e4..b1997bd79c53 100644 --- a/extensions/source/propctrlr/propertycomposer.cxx +++ b/extensions/source/propctrlr/propertycomposer.cxx @@ -160,7 +160,7 @@ namespace pcr // loop through the secondary sets PropertyState eSecondaryState = PropertyState_DIRECT_VALUE; - for ( HandlerArray::const_iterator loop = ( m_aSlaveHandlers.begin() + 1 ); + for ( HandlerArray::const_iterator loop = m_aSlaveHandlers.begin() + 1; loop != m_aSlaveHandlers.end(); ++loop ) @@ -210,7 +210,7 @@ namespace pcr putIntoBag( (*m_aSlaveHandlers.begin())->getSupportedProperties(), m_aSupportedProperties ); // now intersect with the properties of *all* other handlers - for ( HandlerArray::const_iterator loop = ( m_aSlaveHandlers.begin() + 1 ); + for ( HandlerArray::const_iterator loop = m_aSlaveHandlers.begin() + 1; loop != m_aSlaveHandlers.end(); ++loop ) |