summaryrefslogtreecommitdiff
path: root/compilerplugins
AgeCommit message (Collapse)AuthorFilesLines
2018-02-16loplugin:changetoolsgen various improvementsNoel Grandin2-55/+130
- use AdjustFoo variants of methods on Rect/Size/Point - ignore double assignments - improve error messages - handle expressions that include macros by using getExpansionLoc - replace ++X() with X() + 1 Change-Id: Ida6b06b2a92e9226168aff6b1b8031f5867687b4
2018-02-12rename loplugin changerectanglegetref to changetoolsgenNoel Grandin1-23/+19
Change-Id: I378f64ac0879d4c6ea574b1674e96ffb9cc89732
2018-02-12loplugin:changerectanglegetref also fix Point and SizeNoel Grandin1-18/+55
Change-Id: I373af0a62e3785c4abc2d27b0b31121c9d596ca3
2018-02-12fix loplugin rewriter source range checkingNoel Grandin3-10/+41
after commit 94ab8e4360a2a7a932656e99f718244321d0f923 Date: Fri Feb 9 15:28:41 2018 +0200 improve loplugin rewriter double source modification detection Change-Id: Ibf0a64fe4cc3dd6bf5ae16672b3d748a842196e4
2018-02-10improve loplugin rewriter double source modification detectionNoel Grandin6-68/+34
because my new rewriter easily generates overlapping rewriting. Move the code from flatten and salcall up into the pluginhandler, and drop the simpler detection logic. Change-Id: I3da51ac510954a5d4276cee0924cc5dc1fc9a734 Reviewed-on: https://gerrit.libreoffice.org/49493 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-09add setter methods to tools::RectangleNoel Grandin1-0/+268
intended to replace the existing methods that return mutable ref And add the clang rewriter I will use to do most of the work. Change-Id: If00be13da5c16c07671cedbcfea21528bac33c8a Reviewed-on: https://gerrit.libreoffice.org/49430 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-06remove debugging codeNoel Grandin1-1/+0
Change-Id: Ia5018354a764f900091cb5e03327721fa66591c9
2018-02-05loplugin:useuniqueptr in ImpEditEngineNoel Grandin1-0/+3
Change-Id: I5afc846c803f5191bb5e04590923059e88434b76 Reviewed-on: https://gerrit.libreoffice.org/49176 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-02remove connectivity OSubComponentNoel Grandin1-4/+0
push the logic that is still necessary down into the subclasses Change-Id: I99424f0b3c654c5652991a4140b17ceb02224e50 Reviewed-on: https://gerrit.libreoffice.org/49087 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-02loplugin:useuniqueptr in i18npoolNoel Grandin1-0/+3
Change-Id: Iff39b9298bfad474c5c011b6355b8ebf5be06318 Reviewed-on: https://gerrit.libreoffice.org/49091 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-02loplugin:singlevalfieldsNoel Grandin2-30/+60
Change-Id: I346f236e28cb0bd064a7d757b187e5e64544700f Reviewed-on: https://gerrit.libreoffice.org/49086 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-02loplugin:datamembershadow in PopupMenuToolbarControllerNoel Grandin1-2/+2
this looks like an oversight, just use the baseclass member Change-Id: Ida36be64266bbc33a6bd1d89dcb665d24a6dd83f Reviewed-on: https://gerrit.libreoffice.org/49075 Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-02teach useuniqueptr loplugin about while loopsNoel Grandin2-134/+125
and reduce code duplication Change-Id: I292d7515b15fce4cf1714c3b11b947493706bc3c Reviewed-on: https://gerrit.libreoffice.org/49090 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-01these TODOs have been doneNoel Grandin2-8/+0
Change-Id: I5457f38f4668175a8f3e1b0f24a90963ee9d585f Reviewed-on: https://gerrit.libreoffice.org/49076 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-02-01Fix typosAndrea Gelmini1-3/+3
Change-Id: Icb4f4d9039278318d5f7f6302d57957b2c02bdb8 Reviewed-on: https://gerrit.libreoffice.org/49069 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2018-02-01loplugin:datamembershadow in XFCellStyleNoel Grandin1-2/+0
looks like the subclass member is never written to, so I'm going to assume this was a bug Change-Id: Ic56c4a30cd139415eb08c4d572273dad2411b514 Reviewed-on: https://gerrit.libreoffice.org/49001 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-31loplugin:datamembershadow in lotuswordproNoel Grandin1-2/+0
Change-Id: I50f37e09df6c4c7cbe697e3419731e637c980807 Reviewed-on: https://gerrit.libreoffice.org/49000 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-31tdf#114596 compilerplugins: add exception to [loplugin:refcounting]Michael Stahl1-0/+4
Change-Id: I994653dc4bf858bdea7ba60f40da0ee3c8d028e4
2018-01-29Fix typosAndrea Gelmini1-3/+3
Change-Id: Iedd82d035454c940d76a94c7e910c81827c1389c Reviewed-on: https://gerrit.libreoffice.org/48828 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2018-01-29loplugin:useuniqueptr in ModelData_ImplNoel Grandin1-0/+3
Change-Id: I66866ed1698fafe59ba31f99df09fb792da410e3 Reviewed-on: https://gerrit.libreoffice.org/48702 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-26loplugin:datamembershadow in SmartHdlNoel Grandin1-2/+0
rename both these fields Change-Id: I7c414bb440872cdc36d29613be52a5a7542ff9bb Reviewed-on: https://gerrit.libreoffice.org/48565 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-25loplugin:datamembershadow in PresenterPaneNoel Grandin1-2/+0
the subclass field is just a copy of the parent field, so drop the subclass, and consequently simply the CreateCanvases method, we don't need to pass the parameter down, can just access the parent field. Change-Id: I3be448a06b32d01cdda4fc36b78cafb4488e2913 Reviewed-on: https://gerrit.libreoffice.org/48553 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-25loplugin:datamembershadow in SvxUnoTextRangeBaseNoel Grandin1-4/+1
make the superclass member private Change-Id: I665d87bfdfc3d7804cd4cac6108f9bc65b9ca2b5 Reviewed-on: https://gerrit.libreoffice.org/48552 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-25loplugin:datamembershadow in SdXMLShapeLinkContextNoel Grandin1-2/+0
in this case, we can just drop the child member and re-use the parent member. The parent class barely contains any logic anyway. Change-Id: I520217c04a38b66323a76bf5fddb476bd3fc8e15 Reviewed-on: https://gerrit.libreoffice.org/48551 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-24loplugin:constparamsNoel Grandin1-0/+2
Change-Id: I7c695073d9a9d3b7a641d6eb9fe01a47d8c3a504 Reviewed-on: https://gerrit.libreoffice.org/48392 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-23Remove unused TypeCheck::SubstTemplateTypeParmTypeStephan Bergmann2-11/+0
...introduced unused with 91b4e4531621b7afb2dbab1a8aa62c92da66951a "new loplugin: pointerbool" Change-Id: I3af0ce878f1f2742223d66bcdade4e9c144162cd Reviewed-on: https://gerrit.libreoffice.org/48387 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-23new loplugin: pointerboolNoel Grandin4-0/+167
look for possibly bogus implicit conversions to bool when passing (normally pointer) args to bool params. this plugin comes in the wake of a couple of bugs caused by refactoring, where some of the call sites were not currently updated. Of the changes, the following are real bugs: desktop/../dp_persmap.cxx StartInputFieldDlg in sw/../fldmgr.cxx which occurred as a result of commit 39d719a80d8c87856c84e3ecd569d45fa6f8a30e Date: Tue May 3 11:39:37 2016 +0200 tdf#99529 sw: don't pop up input field dialog before inserting field CSerializationURLEncoded::encode_and_append in forms/../serialization_urlencoded.cxx XclExpCFImpl::XclExpCFImpl in sc/../xecontent.cxx I have no idea how to properly fix this, just made a guess. SwDocTest::test64kPageDescs in sw/qa/core/uwriter.cxx which looks like a simple copy/paste error. Change-Id: I795ebd5ef485a1d36863dc27fe13832989f5a441 Reviewed-on: https://gerrit.libreoffice.org/48291 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-20loplugin:unusedmethodsNoel Grandin2-118/+604
Change-Id: If00b0e659e1818c29ae39b89f8b4f7ea29d14986 Reviewed-on: https://gerrit.libreoffice.org/48185 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-19-Werror,-Wunused-variableStephan Bergmann1-7/+1
Change-Id: I1bcfe0dabd61a2157bc4a48ea54413882ecaaabc
2018-01-19loplugin:unusedmethods also check for functions returning boolNoel Grandin1-3/+0
we were previously excluding them Change-Id: I48a68799b0de60b4995fae541eb363e043d4dd11 Reviewed-on: https://gerrit.libreoffice.org/48167 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-19new loplugin:emptyifNoel Grandin2-0/+156
Change-Id: I1092115a0ceb3a5e6680a4b724b129f98a892c42 Reviewed-on: https://gerrit.libreoffice.org/48128 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-17loplugin:unnecessaryparen extend to delete statementsNoel Grandin2-0/+26
Change-Id: Ic4383ea948876a26f791f0e5b0110cef978a26e1 Reviewed-on: https://gerrit.libreoffice.org/48027 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-17loplugin:useuniqueptr in PPDParserNoel Grandin1-0/+3
Change-Id: Iafd63c276d430ea2a08286921f593bc56587e71c
2018-01-17loplugin:useuniqueptr expand search for ranged-loop-deleteNoel Grandin2-1/+16
Change-Id: I78955f4db9b4da2858dfb25e69a5502eb0280418
2018-01-16Fix typosAndrea Gelmini2-3/+3
Change-Id: I46873c8bea3bbfeebb7dee50918d3978408fcf63 Reviewed-on: https://gerrit.libreoffice.org/47842 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2018-01-15More loplugin:cstylecastStephan Bergmann1-6/+8
...also warn about the remaining cases of C-style casts (other than idiomatic cast to void) Change-Id: I274be61ad038fc41ac470fc07ea703a0f071f456
2018-01-15loplugin:useuniqueptr in CursorNoel Grandin2-0/+17
Change-Id: I5de300709409311b7a1d451ee1d314596cf2e879 Reviewed-on: https://gerrit.libreoffice.org/47836 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-12Enable loplugin:cstylecast for some more casesStephan Bergmann3-13/+594
...mostly of C-style casts among arithmetic types, and automatically rewrite those into either static_cast or a functional cast (which should have identical semantics, but where the latter probably looks better for simple cases like casting a literal to a specific type, as in "sal_Int32(0)" vs. "static_cast<sal_Int32>(0)"). The main benefit of reducing the amount of C-style casts across the code base further is so that other plugins (that have not been taught about the complex semantics of C-style cast) can pick those up (cf. the various recent "loplugin:redundantcast" commits, which address those findings after this improved loplugin:cstylecast has been run). Also, I found some places where a C-style cast has probably been applied only to the first part of a larger expression in error (because it's easy to forget parentheses in cases like "(sal_uInt16)VOPT_CLIPMARKS+1"); I'll follow up on those individually. The improved loplugin:cstylecast is careful to output either "(performs: static_cast)" or "(performs: functional cast)", so that compilerplugins/clang/test/cstylecast.cxx can check that the plugin would automatically rewrite to one or the other form. To allow fully-automatic rewriting, this also required loplugin:unnecessaryparen to become a rewriting plugin, at least for the parens-around-cast case (where "((foo)bar)" first gets rewritten to "(static_cast<foo>(bar))", then to "static_cast<foo>(bar)". Rewriting could probably be added to other cases of loplugin:unnecessaryparen in the future, too. (The final version of this patch would even have been able to cope with 361dd2576a09fbda83f3ce9a26ecb590c38f74e3 "Replace some C-style casts in ugly macros with static_cast", so that manual change would not have been necessary after all.) Change-Id: Icd7e319cc38eb58262fcbf7643d177ac9ea0220a Reviewed-on: https://gerrit.libreoffice.org/47798 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-12teach useuniqueptr loplugin about "if(field != null) delete field"Noel Grandin2-56/+120
Change-Id: I938deef90c8d6ceb0e72ab3f6ee2cbddc6f72b8d Reviewed-on: https://gerrit.libreoffice.org/47730 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-11loplugin:useuniqueptr in tools,stoc,unotoolsNoel Grandin1-0/+5
Change-Id: Ia72b65577143623cedc7a40bc34f7fb897add097 Reviewed-on: https://gerrit.libreoffice.org/47726 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-11loplugin:useuniqueptr in l10ntoolsNoel Grandin2-248/+179
update plugin to find all places where we are unconditionally deleting stuff in a destructor Change-Id: Ia0fedc2420c7717ed2bdd8d3bb00262d2a63e0bc Reviewed-on: https://gerrit.libreoffice.org/47724 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-09Don't use non-Windows sys/time.hStephan Bergmann1-4/+4
(The comment what the test wants to check quotes noelgrandin on #libreoffice- dev.) Change-Id: I8e8980902c8113eb75d24064e68a47e70bc483d6 Reviewed-on: https://gerrit.libreoffice.org/47676 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-09Don't build off-by-default loplugin:unusedfields on Windows for nowStephan Bergmann1-0/+4
...due to missing sys/file.h Change-Id: I7cfd64c5355d9fdbb85320f876c277a408be9352 Reviewed-on: https://gerrit.libreoffice.org/47675 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-04sw: move some globals in fetab.cxx into SwFEShellMichael Stahl1-4/+0
It looks like the main point of these being globals is so that they can be cleared from various places when tables or table frames are destroyed. Add a SwDoc parameter to ClearFEShellTabCols() and just iterate over all shells. Change-Id: I75ad6b695ee1bfa76b9a05c606b07a3574c70ac4
2018-01-04loplugin:unusedfieldsNoel Grandin4-51/+114
fix the ReturnStmt check Change-Id: I95076076bd1313d23798c4615ea12910c86ed9a8 Reviewed-on: https://gerrit.libreoffice.org/47309 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-03loplugin:singlevalfields improve copy constructor checkNoel Grandin2-12/+27
Change-Id: Id1e7fbecd9e9f816553d2e678c3f1b7890fc4db8 Reviewed-on: https://gerrit.libreoffice.org/47293 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-03loplugin:passstuffbyref more return improvementsNoel Grandin2-6/+7
slightly less restrictive check when calling functions Change-Id: I35e268ac611797b1daa83777cda02288a635aa32 Reviewed-on: https://gerrit.libreoffice.org/47259 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-02loplugin:passstuffbyref improved return in sd,variousNoel Grandin2-0/+5
Change-Id: I4b6ea89ae2072f4389a696ea3c96d8f7a5731e7a Reviewed-on: https://gerrit.libreoffice.org/47246 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-02loplugin:passstuffbyref improved return in swNoel Grandin1-1/+2
Change-Id: I4484ac461761e4c46364b4f473c7e62f8ec72103 Reviewed-on: https://gerrit.libreoffice.org/47243 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-31loplugin:passstuffbyref improved return in emfio,writerfilterNoel Grandin1-1/+5
Change-Id: I237936d62d0f1b17574dd88b5c9de932dc03238e Reviewed-on: https://gerrit.libreoffice.org/47214 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>