summaryrefslogtreecommitdiff
path: root/compilerplugins
AgeCommit message (Collapse)Author
2017-07-13loplugin:oncevar for value-dependent constant expressionsStephan Bergmann
(Where the change to basic/source/comp/codegen.cxx reveals that loplugin:loopvartoosmall also needs the Clang < 3.9 workaround from 33ee8e61292af05627f5f72ea2f93ad80e715e46 "Work around bug in Clang 3.8".) Change-Id: I9f23b9648bc11ca4136a0fbdd332570ba70ee77c Reviewed-on: https://gerrit.libreoffice.org/39667 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-07-12borderline: correct problems with border displayArmin Le Grand
Borderline display with direct paint and with primitive direct paint has quite some errors in the current state. Started to unify usages, check deeper with creation/usage. borderline: deep changes to BorderLine Found basic error in determining the offset values for BorderLinePrimitive creation, these were not centered on the lines. Corrected that. This makes it possible to remove the formally used clipping which seems to have been used to correct that. Also allows to go back to a 'normal' decomposition that creates line primitives as expected. That again can then be painted quite normally. Also added view-dependent case to the decomposition to guarantee a gap of one discrete unit (pixel). Removed the direct painter, too. Checked and corrected stroking. borderline: Adapted previews to primitives Added code to use the primitive representation in all dialogs and apps using tables. The edit views use these mostly, so the preview should do that, too. Currently missing is a good visualization of diagonals, but this is also true for edit views. Checked all apps and table usages to not get worse borderline: correct line dash visualization When a dashed line is used, a factor of 10.0 was applied in the original coded, added that. Also the orientation of vertical borders was inverted since it was simpler to exchange Start/End, but this also mirrors the line dash visualisation, corrected that Change-Id: I4c1b380a76cb37389fab1259a53fb7cc9da982d1 e95e246d5563360617a2a2213e4d5ec7d0e736b9 62369b4de58fb0264aeb710ec6983ceddca5701d 77418cc6c84ebb0632f8c3448976e82ce612d6b6 b4eb28dc86ce05eb89b26517167305b994158ef8 borderline: adapt cppunittest and clang
2017-07-11unusedfields plugin needs to ignore fields that have reinterpret_cast on themNoel Grandin
Change-Id: Ie8570de6a4eafc95352899fbfd1447d7c3a84e1a
2017-07-10Only consider calls on const member functions as consumptionsStephan Bergmann
Change-Id: I968614ba25affe58ea05c97c97dd10912359df2c Reviewed-on: https://gerrit.libreoffice.org/39755 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-07-10teach unnecessaryparen loplugin about identifiersNoel Grandin
Change-Id: I5710b51e53779c222cec0bf08cd34bda330fec4b Reviewed-on: https://gerrit.libreoffice.org/39737 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-07loplugin:unnecessaryparen handle parens inside call exprNoel Grandin
stick to single-arg function calls, sometimes parens in multi-arg calls might be there for clarity Change-Id: Ib80190c571ce65b5d219a88056687042de749e74 Reviewed-on: https://gerrit.libreoffice.org/39676 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-06loplugin:unusedfields in scNoel Grandin
found a couple more by running make build-nocheck to exclude testing code Also, teach unusedfields loplugin about operator<<, since referring to a field in an ostream operator<< does not indicate a real use, it's normally for debugging Change-Id: I3dce22bf5afda2fd09e01de9bf1d0ef85e535aa8 Reviewed-on: https://gerrit.libreoffice.org/39625 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-06teach unnecessaryparen plugin about other kinds of statementsNoel Grandin
i.e. do / while / switch Change-Id: Id0985015cc425557f9984734701d56466f8a6088 Reviewed-on: https://gerrit.libreoffice.org/39601 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-06loplugin unnecessaryparan improvementsNoel Grandin
Change-Id: I73e945d6ec53537a0da45f6b6291018c7f251a7e Reviewed-on: https://gerrit.libreoffice.org/39587 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-05new loplugin unnecessaryparenNoel Grandin
Change-Id: Ic883a07b30069ca6342d7521c8ad890f4326f0ec Reviewed-on: https://gerrit.libreoffice.org/39549 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-05loplugin:unusedfields variousNoel Grandin
Change-Id: Ia7bcf2471381aa6a2768ea795fe6572e38209100
2017-07-05loplugin:unusedfields connectivityNoel Grandin
Change-Id: I056b36249803982e451b887cc73b49a851144b7e Reviewed-on: https://gerrit.libreoffice.org/39498 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields in cui..idlNoel Grandin
Change-Id: Icb393cc0b2f79ded154e186ab6975b95e5126903 Reviewed-on: https://gerrit.libreoffice.org/39496 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04typo in commentStephan Bergmann
Change-Id: I816f2dad87d798296e60a5eb8842a147f504b90b
2017-07-04loplugin:unusedfields in editengNoel Grandin
Change-Id: I9806d87028a11a8103c35004c87b5098ca591409 Reviewed-on: https://gerrit.libreoffice.org/39495 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields l10ntools..rscNoel Grandin
Change-Id: I78785eeab436910c9e8733924a7c43fa998ba36f Reviewed-on: https://gerrit.libreoffice.org/39491 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields in formulaNoel Grandin
Change-Id: I5d8fe8869087efda68d040448b2d9e0e7e5611f6 Reviewed-on: https://gerrit.libreoffice.org/39493 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields in frameworkNoel Grandin
Change-Id: Ibb602e037bcee518c31dfe9734a5c5773cff23ab Reviewed-on: https://gerrit.libreoffice.org/39492 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields in sdNoel Grandin
Change-Id: I42def3dc21ae1a18e1c98d1aeeff4ed4425e941a Reviewed-on: https://gerrit.libreoffice.org/39479 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfields in sfx2Noel Grandin
Change-Id: I9f57545ca4ee5159a095f9b35267d298ccc7fb4e Reviewed-on: https://gerrit.libreoffice.org/39476 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:unusedfieldsNoel Grandin
Change-Id: I6bf3de7ba6e6bff2fd607156a0dcdd554887e491 Reviewed-on: https://gerrit.libreoffice.org/39475 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-04loplugin:casttovoid: fix containsPreprocessingConditionalInclusion()Stephan Bergmann
...and re-enable plugin Change-Id: I0b42cfc0f0b45711e714e6661ae9dd39f05f8960
2017-07-03loplugin:unusedfields in slideshow..svtoolsNoel Grandin
Change-Id: I74d5a4b8cfc4b18267f99648a3112b163c91fd8c Reviewed-on: https://gerrit.libreoffice.org/39474 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-03Disable loplugin:casttovoid for nowStephan Bergmann
I'd accidentally developed it against a Clang built without LLVM_ENABLE_ASSERTIONS=ON, so only saw issues with containsPreprocessingConditionalInclusion() now. Change-Id: I5da6775a06de748e78b34a42f63b0543c3893124
2017-07-03loplugin:casttovoidStephan Bergmann
Change-Id: I427b15b35ef6e7c803cb8a00c961d35175ae8cb2
2017-07-03Work around bug in Clang 3.8Stephan Bergmann
...that causes > clang/lib/AST/Type.cpp:1878: bool clang::Type::isConstantSizeType() const: Assertion `!isDependentType() && "This doesn't make sense for dependent types"' failed. compilation failure in PCodeBufferWalker in basic/source/comp/codegen.cxx > static T readParam( sal_uInt8 const *& pCode ) > { > short nBytes = sizeof( T ); > T nOp1=0; > for ( int i=0; i<nBytes; ++i ) > nOp1 |= *pCode++ << ( i * 8); > return nOp1; > } with loplugin:oncevar. Change-Id: I25417076549ea538adf013282f3657e0d642d776
2017-07-03loplugin:unusedfields in svxNoel Grandin
Change-Id: I027b70ee92ab07eb68452457c3ee45de3ad22c8b Reviewed-on: https://gerrit.libreoffice.org/39412 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-03loplugin:unusedfields in swNoel Grandin
Change-Id: I807f93757bfddf17f71568f1e3c174229f169f18 Reviewed-on: https://gerrit.libreoffice.org/39409 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-30loplugin:unusedfields in toolkit..xmloffNoel Grandin
Change-Id: I4964ff97e0a1735dc08c6ad204cae0b08e9ffc2c Reviewed-on: https://gerrit.libreoffice.org/39406 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-30Actually print parent nameStephan Bergmann
Change-Id: Iba9bacc0ecaf5288f5c53f6fa73340504c646b4f
2017-06-30Avoid getQualifiedNameAsStringStephan Bergmann
Change-Id: I448bfd63f1a2fb9cac3366146b10ff6a465e6db7
2017-06-29fix some crashes in unusedfields pluginNoel Grandin
for some reason the insideMoveOrCopyDecl pointer to MethodDecl becomes bad during AST traversal, but the pointers to RecordDecl seem stable? Change-Id: Ida939f5ca4780e674b245411f7395f147258544e
2017-06-29unusedfields loplugin writeonly analysis improvementsNoel Grandin
(1) ignore reads inside copy/move constructors/operator= (2) fix false+ when assigning to array field (3) ignore reference ("&") fields Change-Id: I69a1a1c567a0b28a783e605982e5150811b6cc4a
2017-06-29improve refcounting lopluginNoel Grandin
to find ref-counted classes being managed via other smart pointer classes. Hopefully prevent needing fixes like 642ae256ea5b8083ba0b3c097ca8ea52304b9cdb "ChangedUIEventListener is refcounted, mustn't be helt by unique_ptr" Change-Id: I6b0c5f8f87ce3546a8a1104ce1000470c09459bd Reviewed-on: https://gerrit.libreoffice.org/39378 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-29loplugin:oncevar variousNoel Grandin
Change-Id: I8b82d46d4688b1a59d6fe1b05da7d5c8dfc13ca6 Reviewed-on: https://gerrit.libreoffice.org/38766 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-26Fix loplugin:vclwidgets' disposeOnce checkStephan Bergmann
Found when trying to temporarily add a SAL_DEBUG to (otherwise empty) ~NotebookbarTabControl (sfx2/source/notebookbar/NotebookbarTabControl).
2017-06-26update constantfunction lopluginNoel Grandin
didn't find anything useful, so just updating the exclusion lists Change-Id: I66d37aee185290f454e5ac0baeafd1f67bfaf106 Reviewed-on: https://gerrit.libreoffice.org/39254 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-26extensions: remove COMPMOD preprocessor definesJochen Nitschke
COMPMOD_RESPREFIX=abp was unused ever since initial commit in 2001. COMPMOD_NAMESPACE was used to set the namespace name qualifier of the helper in componentmodule.hxx to the extension's namespace name. I don't see why this is necessary as the helper is always compiled in a separate extension library. Change-Id: I287607008db3dc0ebc32731536747a921c91807d Reviewed-on: https://gerrit.libreoffice.org/39184 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-23std::string -> StringRefStephan Bergmann
Change-Id: I06145822290ae4b3690a792eb4d2ad79437fd9cc
2017-06-21Fix compilation with Clang 3.9.1Tor Lillqvist
Change-Id: I6e96064a001fd511864665fe0ef8b60d45462c12
2017-06-21loplugin:unusedfields in svx part1Noel Grandin
Change-Id: I6621e0dda5a5dc3e68c7b1613975c075e2879912 Reviewed-on: https://gerrit.libreoffice.org/39006 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-20-Werror=unused-functionStephan Bergmann
Change-Id: Iecc7d68ad18e90bf84d358af92194c230efc2671
2017-06-20fix for older clang in lopluginsNoel Grandin
since commit 03ee996717dcf9e20529a6a3295df69d0d86dcce "loplugin:unusedfields fix more false +" Change-Id: Ief935fea8c554707db38b4ede4fab2ec1adca997
2017-06-20reformat some loplugin codeNoel Grandin
to match our more normal conventions. Also drop the 'using std' and some other cruft Change-Id: I02ef81c5427188bc03a20b157a57a900a9d7bf0d
2017-06-20loplugin:unusedfields fix more false +Noel Grandin
deal with fields assigned to local variables, and some general cleanup Change-Id: I894c74a01e9e28935ecd84308c2e92b080afafc6
2017-06-20loplugin:unusedfields fix some more false positivesNoel Grandin
in the write-only analysis Change-Id: Ic570416e855b8ec38d54f6f6f1adef4819ea53ee
2017-06-20improve oncevar lopluginNoel Grandin
we look for any kind of scalar variable now that deserves to be inlined, and we check for variables that cannot be inlined because they are being passed by reference, or modified, or have their address taken Change-Id: Ia744a180e91d1516140a1555d4514f6fa4de1c0b Reviewed-on: https://gerrit.libreoffice.org/38966 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-20loplugin:unusedfields fix false positiveNoel Grandin
When the field in question is read from inside a constructor initializer. In the process, create some needed infrastructure in the plugin classes. Change-Id: I2f440efa6912801a236727c9fe3180404616958c Reviewed-on: https://gerrit.libreoffice.org/38960 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-19only unit-test one loplugin at a timeNoel Grandin
tell the plugin code when we are unit-testing it, so we can suppress all the warnings except for the plugin we are currently testing Change-Id: I240c8e37eba90c219e53c29531a3a43bc841a1c8
2017-06-19Make SfxItemSet ranges correct by construction: Fix static casesStephan Bergmann
...with the aid of an extended compilerplugins/clang/store/sfxitemsetrewrite.cxx (which in turn needed a small addition to compilerplugins/clang/check.hxx). Enable svl::detail::validGap check for the static case, but keep it disabled for now for the dynamic case. Change-Id: I4846ba8e99aff94a86518e2cb5044e575093386e