summaryrefslogtreecommitdiff
path: root/compilerplugins/clang
AgeCommit message (Collapse)AuthorFilesLines
2019-12-02desktop: disable callback handling while changing the viewAshod Nakashian1-6/+0
When changing the view, some components are disabled and re-enabled. This triggers a flood of invalidations that then result in rendering requests. For each rendering the view is set, which triggers more invalidations. The Sidebar suffers from this, and it causes cpu pegging. This fix prevents this issue by disabling all callbacks during setView. Change-Id: If6b93b2ab31f568a0761f15d945a43de1bc2d4d0 Reviewed-on: https://gerrit.libreoffice.org/84184 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com> Reviewed-on: https://gerrit.libreoffice.org/84224 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2019-11-13Extend loplugin:salbool to loplugin:fakeboolStephan Bergmann2-249/+477
...checking for unnecessary uses of more "fake bool" types. In the past, some of the checks involving the types of variables or data members, or the return types of functions, issued warnings that required surrounding code to be changed too (e.g., when changing the signature of a function whose address was taken). These checks have been tightened now to not warn in such cases (which avoids warnings that require changes to additional code, or changes that might even be impossible to make, at the cost of being less aggressive about removing all unnecessary uses of those "fake bool" types). Change-Id: I70eb75039817cda34ed611387ee27dc5f36a3e2e Reviewed-on: https://gerrit.libreoffice.org/82554 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-12Clarify loplugin:external behavior for const(expr) varsStephan Bergmann1-0/+23
Change-Id: I4a649f9c9ed2015ed9b32a153060df9770b20403 Reviewed-on: https://gerrit.libreoffice.org/82493 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-11Make base of loplugin::FunctionAddress more flexibleStephan Bergmann6-27/+28
(I'm planning to use it for a FilteringRewritePlugin.) And while at it, base its current uses on FilteringPlugin. Change-Id: I0acdcc6cb0b3a434b425405c8c438dbf65e4d3cb Reviewed-on: https://gerrit.libreoffice.org/82451 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-08Use more efficient NamedDecl::getNameStephan Bergmann1-1/+1
Change-Id: I764b254180809c7ee020d5115e4b9e50e0227c09 Reviewed-on: https://gerrit.libreoffice.org/82321 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-07remove some unused gettersCaolán McNamara1-4/+0
Change-Id: Iaa556491add4a7674f90ecfbf8e44f0b1d6583ee Reviewed-on: https://gerrit.libreoffice.org/82198 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-07drop unused TreeView::set_top_entryCaolán McNamara1-2/+0
Change-Id: I70171b95baf29486c253e7d388ba59385da1d929 Reviewed-on: https://gerrit.libreoffice.org/82196 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-11-07loplugin:unusedmethodsNoel Grandin2-109/+135
Change-Id: I65354c7476dfaede1a607441d7c1b0c7ad038df4 Reviewed-on: https://gerrit.libreoffice.org/82186 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-07loplugin:unusedfieldsNoel Grandin4-103/+107
Change-Id: Ic1c0a2144f39373f93384bccbfc74356cac65ba0 Reviewed-on: https://gerrit.libreoffice.org/82185 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-06loplugin:unnecessaryvirtualNoel Grandin2-27/+25
Change-Id: Ibffbd0f5d30ec14cace3638b2bb47c91a583711c Reviewed-on: https://gerrit.libreoffice.org/82171 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-06loplugin:unusedvariablecheck tweak to find more stuffNoel Grandin1-1/+15
but leave the tweak commented out, since it generates false positives Change-Id: Iaf3f92414d2618f8780561f98765e33e282afe0c Reviewed-on: https://gerrit.libreoffice.org/82121 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-06loplugin:indentation find broken if statementsNoel Grandin2-0/+80
so I don't read the "then" block as being a sequential statements Change-Id: Ib2004acd3518bd4ebd2246f02a26c2c0a8bbab4c Reviewed-on: https://gerrit.libreoffice.org/82069 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-11-04loplugin:redundantcast: Don't warn about cast from nullptr_t to function ptrStephan Bergmann2-3/+26
See comments at <https://gerrit.libreoffice.org/#/c/81958/> "Only initialize function pointer once" for a case where such a false warning caused trouble (in a lambda with deduced return type and multiple return statements). Change-Id: I64b0b8c45bd3d2a6075e336c361ec778fa0da481 Reviewed-on: https://gerrit.libreoffice.org/82034 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-02New loplugin:conditionalstringStephan Bergmann2-0/+492
Change-Id: I2eab990c15f845b44a3b598571aca361dadf9ff3 Reviewed-on: https://gerrit.libreoffice.org/81946 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-31Fix StringAdd::isCompileTimeConstantStephan Bergmann2-35/+84
...to find StringLiteral on the RHS of +=. Which revealed that the VisitCompoundStmt/checkForCompoundAssign logic needed to be fixed, too, so that s += side_effect(); s += "literal"; s += side_effect(); only gets combined to s += side_effect() + "literal"; s += side_effect(); and not all the way to s += side_effect() + "literal" + side_effect(); Change-Id: I432e3458b933a7d0ad6141c747b675cc8b0f0ba4 Reviewed-on: https://gerrit.libreoffice.org/81804 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-30Clarify current loplugin:stringadd behaviorStephan Bergmann1-0/+11
Change-Id: Ie5fb84e2b9afddcf86c86364811f0c4f5b90c82e Reviewed-on: https://gerrit.libreoffice.org/81748 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-30Fix Plugin::containsPreprocessingConditionalInclusionStephan Bergmann1-5/+21
...which had been broken since dfc0dc4801707b2d8080af1540625b43bd463e17 "loplugin:casttovoid: fix containsPreprocessingConditionalInclusion()", and, when range.getEnd() was a macro loc, would typically have wandered off past the end of the intended range, until it would have encountered some #if etc. and erroneously returned true. Fixed the fallout across the code base. While at it, added a clarifying comment and made the "lexing fails" cases that should never happen fail with a fatal error in debug mode. Change-Id: Ieff44548384426d7716b6fc6c836c9069d878729 Reviewed-on: https://gerrit.libreoffice.org/81721 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-29loplugin:finalclasses fix checkNoel Grandin1-2/+2
need to check after we generate the inherited-from set, not before Change-Id: Ic66deeb680f4a2505d66f99872ac7a5bc263cda9 Reviewed-on: https://gerrit.libreoffice.org/81636 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-28loplugin:finalclasses look for classes with virtual membersNoel Grandin1-6/+14
where making them final gives the compiler freedom to de-virtualise some calls Change-Id: I5755a41c42d9f23af58b873efae37a1d240fbd89 Reviewed-on: https://gerrit.libreoffice.org/81618 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-28Completely remove lambda capture that is unusedStephan Bergmann1-2/+1
...since 6d6fad522a2cd6a2959ea774969a86288f5a3cb7 "Introduce OStringChar" (and had needlessly been kept alive with ce3badb157c58941608f878a7de98c7739e30aec "compilerplugins: fix -Werror,-Wunused-lambda-capture") Change-Id: Ie34ef1197f97ecab5b8f30741f1e2c4b3a9db594 Reviewed-on: https://gerrit.libreoffice.org/81591 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28loplugin:stringadd improve detectionNoel Grandin2-27/+48
if one side of the expression is a compile-time-constant, we don't need to worry about side-effects on the other side Change-Id: Iee71ea51b327ef244bf39f128f921ac325d74e2b Reviewed-on: https://gerrit.libreoffice.org/81589 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-25compilerplugins: fix -Werror,-Wunused-lambda-captureMiklos Vajna1-0/+1
Change-Id: I2a1374a1e79401c2107d003102ab797fac9a3d66
2019-10-24Introduce OStringCharStephan Bergmann2-10/+1
...similar to OUStringChar, to be used in string concatenation expressions. And enable the corresponding loplugin:stringadd check, and fix its findings. Change-Id: I35ebb2253ba82bda6c98ae6ebd2ad4f27cf9abf9 Reviewed-on: https://gerrit.libreoffice.org/81456 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-24This is fixed now on Clang trunkStephan Bergmann2-3/+16
...since <https://github.com/llvm/llvm-project/commit/ dc3957ec215dd17b8d293461f18696566637a6cd> "Include leading attributes in DeclStmt's SourceRange" Change-Id: I21859dfdcb454a9dd4444ce299548bf75043b1ab Reviewed-on: https://gerrit.libreoffice.org/81424 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23Don't use broken StringAdd::getSourceAsStringStephan Bergmann1-16/+2
it caused clang-cl to crash when processing desktop/source/app/opencl.cxx Change-Id: I0a39697e75242cd00f12b60477d51a1e5bf96a4f Reviewed-on: https://gerrit.libreoffice.org/81409 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23Fix call to NamedDecl::getNameStephan Bergmann1-4/+7
...which fails at least with clang-8.0.0-3.fc30.x86_64 with "clang-8: /usr/include/clang/AST/Decl.h:277: llvm::StringRef clang::NamedDecl::getName() const: Assertion `Name.isIdentifier() && "Name is not a simple identifier"' failed." Change-Id: I6999240e2b518b6818a43d1e5ac92224300b343f Reviewed-on: https://gerrit.libreoffice.org/81415 Tested-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-23loplugin:unusedfieldsNoel Grandin4-38/+50
Change-Id: I1f69ec45e7d44e45a6ece1fe9d9eef8a2be2d6ff Reviewed-on: https://gerrit.libreoffice.org/81361 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-23loplugin:unusedmethodsNoel Grandin1-67/+53
Change-Id: I5fd081780d46fd30864830eea2956bad6dc3e222 Reviewed-on: https://gerrit.libreoffice.org/81360 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:unusedenumconstantsNoel Grandin3-3520/+3488
Change-Id: I76aadeefce66df93f21b7e45c0e87ab92df45131 Reviewed-on: https://gerrit.libreoffice.org/81324 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22Avoid C++20 operator overloading ambiguityStephan Bergmann2-10/+35
...which is reported now by Clang 10 trunk with -std=c++2a: > cui/source/tabpages/tpline.cxx:481:80: error: use of overloaded operator '==' is ambiguous (with operand types 'const XLineEndItem' and 'XLineStartItem') > if( pItem && ( !pOld || !( *static_cast<const XLineEndItem*>(pOld) == *pItem ) ) ) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~ > include/svx/xlnstit.hxx:43:29: note: candidate function (with reversed parameter order) > virtual bool operator==(const SfxPoolItem& rItem) const override; > ^ > include/svx/xlnedit.hxx:43:29: note: candidate function > virtual bool operator==(const SfxPoolItem& rItem) const override; > ^ But the base SfxPoolItem::operator == is virtual anyway, so no need to cast pOld to a derived type. And once the expression is changed to !( *pOld == *pItem ) loplugin:simplifybool would kick in, but only with old compilers. So update loplugin:simplifybool to also kick in on that with latest Clang trunk with -std=c++2a, and simplify the expression accordingly. Change-Id: I3de9175b30d8645ed7a52f87cfac320144576cc8 Reviewed-on: https://gerrit.libreoffice.org/81203 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-22loplugin:constantparamNoel Grandin4-847/+840
Change-Id: Ibfe70492683ff3ec208cee95d8a11155ec54f690 Reviewed-on: https://gerrit.libreoffice.org/81314 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:singlevalfieldsNoel Grandin2-190/+124
Change-Id: I92c5634b16862abe1c73c20cfe66abe92f58bb88 Reviewed-on: https://gerrit.libreoffice.org/81303 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:virtualdead unused param in ResourceChangeListenerNoel Grandin1-3/+0
Change-Id: I6bfaef6694ec654889ddf1f300851f323bcc56b3 Reviewed-on: https://gerrit.libreoffice.org/81272 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:virtualdead unused param in ChartTypeDialogControllerNoel Grandin1-3/+0
Change-Id: I71eaedcd2fbd5b6d05bc90c4c5ddbc7fca9f5925 Reviewed-on: https://gerrit.libreoffice.org/81271 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:virtualdead unused params in OCacheSetNoel Grandin1-9/+0
these methods do nothing except forward to their similar named variants, so just remove them Change-Id: I28d31bbe2c1e39fe5a9c2d7eaa9e14006213ab27 Reviewed-on: https://gerrit.libreoffice.org/81247 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22loplugin:virtualdead unused param in IContainerApproveNoel Grandin1-3/+0
Change-Id: I59edede149d02085125ee946994b6088c3152e7b Reviewed-on: https://gerrit.libreoffice.org/81246 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-22There doesn't need to be a TemplateSpecializationType hereStephan Bergmann1-1/+0
On both macOS (libc++) and Windows (MSVC standard library), compilerplugins/clang/test/getstr.cxx failed four tests without this fix: > error: 'error' diagnostics expected but not seen: > File compilerplugins/clang/test/getstr.cxx Line 29: suspicious use of 'getStr' on an object of type 'rtl::OUStringBuffer'; the result is implicitly cast to a void pointer in a call of 'operator <<' [loplugin:getstr] > File compilerplugins/clang/test/getstr.cxx Line 30: directly use object of type 'S' (aka 'rtl::OString') in a call of 'operator <<', instead of calling 'getStr' first [loplugin:getstr] > File compilerplugins/clang/test/getstr.cxx Line 34: suspicious use of 'getStr' on an object of type 'rtl::OUStringBuffer'; the result is implicitly cast to a void pointer in a call of 'operator <<' [loplugin:getstr] > File compilerplugins/clang/test/getstr.cxx Line 35: directly use object of type 'rtl::OString' in a call of 'operator <<', instead of calling 'getStr' first [loplugin:getstr] Change-Id: I65406d3d84bb5a89df44c8fd665b6e38d19f38c7 Reviewed-on: https://gerrit.libreoffice.org/81266 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21Make loplugin:stringcostant find some misuses of OUStringBuffer::appendStephan Bergmann2-8/+34
...like the one manually found at 06845c14a17146b0ec50dd3704b6af9ee13927bc "This should have become a UTF-16 string literal". (No further misuses were found across the code base.) Change-Id: I0b604bdaaa38bd9248440ff7bd7bf0545fc6426a Reviewed-on: https://gerrit.libreoffice.org/81250 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21loplugin:virtualdead unused param in IControlActionListenerNoel Grandin1-3/+0
Change-Id: I2ce8df6a9a1ac2e6d6c5de08b32fb671bf10cd17 Reviewed-on: https://gerrit.libreoffice.org/81244 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in OTableRowViewNoel Grandin1-6/+0
Change-Id: Ice8d68284800e12af3e334722cc6109a1614e335 Reviewed-on: https://gerrit.libreoffice.org/81243 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused params in formsNoel Grandin1-6/+0
Change-Id: Iac26ba57443060474f4f33c4f449a69eca8c1063 Reviewed-on: https://gerrit.libreoffice.org/81236 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in SvtFileDialog_BaseNoel Grandin1-3/+0
Change-Id: Id10c6df2a9d00f19dc1dc314515fedbe90918f66 Reviewed-on: https://gerrit.libreoffice.org/81235 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in EditEngine::FieldClickedNoel Grandin1-3/+0
Change-Id: Iffe075960308d5058cb7535e9216caa37aabe0c5 Reviewed-on: https://gerrit.libreoffice.org/81232 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in UnknownAttrTokenNoel Grandin1-3/+0
Change-Id: Iccf88b919cfc40419271e6f18d101027ef2bb9df Reviewed-on: https://gerrit.libreoffice.org/81218 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in ProcessClientAnchor2Noel Grandin1-3/+0
Change-Id: Ic766fcc1bfd33d891edc1da87e1b35a8efba169a Reviewed-on: https://gerrit.libreoffice.org/81217 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in SfxObjectShell::FillClassNoel Grandin1-3/+0
and since I notice that the two call sites also don't care about pShortTypeName, remove that too Change-Id: I4649fc4c134c1113555b9dedb53499ce39d17132 Reviewed-on: https://gerrit.libreoffice.org/81213 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in SfxStatusListener::StateChangedNoel Grandin1-3/+0
Change-Id: Ic467490ddd1b0762bfa61878c4026afb53b02743 Reviewed-on: https://gerrit.libreoffice.org/81212 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:deadvirtual unused param in ItemUpdateReceiverInterfaceNoel Grandin1-3/+0
Change-Id: I3db5a456a259a97dc9bdf6be0d478177bac05215 Reviewed-on: https://gerrit.libreoffice.org/81186 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in TitleBar::PaintDecorationNoel Grandin1-3/+0
Change-Id: I3dd8ee6492be1a4b3d1032c4d50cc01111d748cb Reviewed-on: https://gerrit.libreoffice.org/81185 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-21loplugin:virtualdead unused param in ITableRendererNoel Grandin1-9/+0
Change-Id: I008ff69494af305485a022def72a14a04b26a19e Reviewed-on: https://gerrit.libreoffice.org/81183 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>