summaryrefslogtreecommitdiff
path: root/compilerplugins
AgeCommit message (Collapse)Author
2019-06-25help compilerplugins generator find clang shared libs, if neededLuboš Luňák
Change-Id: I892aa42bc1e94823ab52cdfd6a855bf90106306d Reviewed-on: https://gerrit.libreoffice.org/74681 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-06-25do not use -g unconditionally for building the clang pluginLuboš Luňák
The generated files are ~700MiB here, compared to ~85MiB without. Change-Id: I76bafc59ff89fd7eb8ffbc4b9ad79bc63da8f064 Reviewed-on: https://gerrit.libreoffice.org/74678 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-06-25improve loplugin:simplifyconstructNoel Grandin
Change-Id: If863d28c6db470faa0d22273020888d4219e069e Reviewed-on: https://gerrit.libreoffice.org/74559 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-20loplugin:logexceptionnicely in variousNoel Grandin
Change-Id: I207d21e674366046e2663ebaf7f5161cde2c5fab Reviewed-on: https://gerrit.libreoffice.org/74336 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-18loplugin:passstuffbyrefNoel Grandin
Change-Id: Icb7c22cf4ac95eab54d04e79312fb471ca27bceb Reviewed-on: https://gerrit.libreoffice.org/74246 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-14loplugin:unusedmethodsNoel Grandin
Change-Id: I7787a8eedf500b0b16c04114935d3d3124d9ac3d Reviewed-on: https://gerrit.libreoffice.org/74032 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-14loplugin:unusedfields improvementsNoel Grandin
tighten up the only calling write-only methods part of the analysis Change-Id: I5bc6fdf0ce51940653317e8a48c5241705c90d4c Reviewed-on: https://gerrit.libreoffice.org/74022 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-13new loplugin logexceptionnicelyNoel Grandin
to be used to find places to use new TOOLS_WARN_EXCEPTION,etc macros Change-Id: I213ab47efa82075435bb800736ee0937aea0486c Reviewed-on: https://gerrit.libreoffice.org/73950 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-12weld OrganizeDialogCaolán McNamara
Change-Id: I976edb0b49c8439d1723be4544b10a5375b8e1d3 Reviewed-on: https://gerrit.libreoffice.org/73755 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-06-12loplugin:unusedmethodsNoel Grandin
Change-Id: I42667e8483d2cb4363227344faca3899bd95d424 Reviewed-on: https://gerrit.libreoffice.org/73824 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-12loplugin:unusedfieldsNoel Grandin
Change-Id: I0bd600b59b2bc4b50eb2d32e95c9d1167fdf2eab Reviewed-on: https://gerrit.libreoffice.org/73823 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-11commit loplugin:virtualdown resultsNoel Grandin
so in future I can just look at the stuff that has changed Change-Id: I7e3d79da21b48d53f316e467b4bb7447af1017c5 Reviewed-on: https://gerrit.libreoffice.org/73771 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-08loplugin:unusedfieldsNoel Grandin
Change-Id: I9758fd606c7d4c251a3ac06661d642a47260b5fc Reviewed-on: https://gerrit.libreoffice.org/73674 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-06-07Fix typosAndrea Gelmini
Change-Id: If9d52bd769d96865a3fbfdda1f339bbd0f8c3ca3 Reviewed-on: https://gerrit.libreoffice.org/73633 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-06-06loplugin:typedefparam: Work around different size_t typedefs on macOSStephan Bergmann
...which for me caused > [CXX] registry/tools/options.cxx > /Users/stephan/Software/lo/core/registry/tools/options.cxx:39:89: error: function param 3 at definition site does not match function param at declaration site, 'size_t' (aka 'unsigned long') vs 'size_t' (aka 'unsigned long') [loplugin:typedefparam] > bool Options::checkArgument(std::vector< std::string> & rArgs, char const * arg, size_t len) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ > /Users/stephan/Software/lo/core/registry/tools/options.hxx:41:93: note: declaration site here [loplugin:typedefparam] > static bool checkArgument (std::vector< std::string > & rArgs, char const * arg, size_t len); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~ because one is TypedefType 0x115a4d700 'size_t' sugar |-Typedef 0x115a4d460 'size_t' `-BuiltinType 0x7fde8e0393c0 'unsigned long' while the other is TypedefType 0x7fde8e94a3a0 'size_t' sugar |-Typedef 0x7fde8e94a138 'size_t' `-TypedefType 0x7fde8e94a100 '__darwin_size_t' sugar |-Typedef 0x7fde8e88cc28 '__darwin_size_t' `-BuiltinType 0x7fde8e0393c0 'unsigned long' and > [CXX] store/source/storcach.cxx > /Users/stephan/Software/lo/core/store/source/storcach.cxx:218:43: error: function param 1 at definition site does not match function param at declaration site, 'std::size_t' (aka 'unsigned long') vs 'std::size_t' (aka 'unsigned long') [loplugin:typedefparam] > void PageCache::rescale_Impl (std::size_t new_size) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ > /Users/stephan/Software/lo/core/store/source/storcach.hxx:67:36: note: declaration site here [loplugin:typedefparam] > void rescale_Impl (std::size_t new_size); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~ because one is ElaboratedType 0x116f5cba0 'std::size_t' sugar `-TypedefType 0x7fd58673e090 'size_t' sugar |-Typedef 0x7fd58673dde8 'size_t' `-BuiltinType 0x7fd58603cfc0 'unsigned long' while the other is ElaboratedType 0x7fd586742200 'std::size_t' sugar `-TypedefType 0x7fd58621cdc0 'size_t' sugar |-Typedef 0x7fd5861ce4a0 'size_t' `-TypedefType 0x7fd5861cdc70 '__darwin_size_t' sugar |-Typedef 0x7fd586889ec8 '__darwin_size_t' `-BuiltinType 0x7fd58603cfc0 'unsigned long' Change-Id: I3622716376198cc046b0489db59c5cbf613ea1f4 Reviewed-on: https://gerrit.libreoffice.org/73585 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-31tdf#114596 compilerplugins: add exception to [loplugin:refcounting]Xisco Fauli
Change-Id: I94a1d4fcacc7907df21b05fd773d3273e1a0d6a2 Reviewed-on: https://gerrit.libreoffice.org/73147 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-27fix compilerplugin rebuilding when system clang changesLuboš Luňák
Since Clang doesn't keep backwards binary compatibility, it's necessary to rebuild when Clang (major version?) changes. This was broken because e.g. check.cxx didn't include plugin.hxx, and so it didn't depend on config_clang.h . Now simply force timestamp change if config_clang.h changes. This still needs re-running configure though. Change-Id: Icbc404b37105599f1ca6c8996f5a3d45d50082db Reviewed-on: https://gerrit.libreoffice.org/72976 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-27Revert "Remove broken rebuild of compilerplugins when CLANG_FULL_VERSION..."Luboš Luňák
This reverts commit efe28895498b03f1468a9dc9f510452f36affc2f. It is that commit that is broken. The only thing that does not work is that not all compilerplugin sources depend on config_clang.h, the rest is fine. So instead of reverting something that in principle works (and even complaining in the commit message about the original problem), just fix it (will do in next commit). Change-Id: Ic7766a97220d5b7ef1cd195320899564140fdf1c Reviewed-on: https://gerrit.libreoffice.org/72975 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-27sharedvisitor generator should also be rebuilt if clang changesLuboš Luňák
Change-Id: I7602974ed6f4969ec9f79504bdb72758a747d39a Reviewed-on: https://gerrit.libreoffice.org/72982 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-27fix clang version checkLuboš Luňák
As 56f87dac69b4 says, this is about clang 9, not clang 8. Change-Id: I2978d2235c7eb3ad438082f7b08a1bd68977ed6f Reviewed-on: https://gerrit.libreoffice.org/72974 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-23Avoid putting generator.dwo in current working dirStephan Bergmann
At least some versions of GCC put the -gsplit-dwarf .dwo file in cwd when compiling and linking is done together in one compiler invocation, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90575> "-gsplit-dwarf leaves behind .dwo file in cwd". Change-Id: I1b418e400a3e8107997fbbfd7f87ef3ac9fbbd28 Reviewed-on: https://gerrit.libreoffice.org/72841 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-22New loplugin:dataStephan Bergmann
...following up on 1453c2c8f13bac64ecd1981af7cebf1c421808ac "prefer vector::data to &vector[0]" Change-Id: I7c113747d92d144a521d49b89384dd8bf1215c01 Reviewed-on: https://gerrit.libreoffice.org/72765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-22Don't try to evaluate value of value-dependent ExprStephan Bergmann
...which causes asserts to fire since <https://github.com/llvm/llvm-project/ commit/04323c24a1ac9464471331d9f6499d3cb95d1ccd> "Added an assertion to constant evaluation enty points that prohibits …" Change-Id: Iafbf1cea85d15a38a71275d4cea8303bab500f6a Reviewed-on: https://gerrit.libreoffice.org/72723 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-20use -gsplit-dwarf also for compilerplugins if possibleLuboš Luňák
~350MiB easily saved. Change-Id: I9a91894cf4df7bc06d472795e564148fe8342995 Reviewed-on: https://gerrit.libreoffice.org/72588 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-19PPCallback clang plugin should say soLuboš Luňák
Change-Id: I76148f152f57af74935c99e290b30b509511dfd8 Reviewed-on: https://gerrit.libreoffice.org/72546 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-16Adapt compilerplugins to Clang 9 isExplicitSpecified -> getExplicitSpecifierStephan Bergmann
see <https://github.com/llvm/llvm-project/commit/ 76b9027f352a83c13c98820724071c5e3bea6232> "[c++20] Add support for explicit(bool), as described in P0892R2." Change-Id: Ia8a6902a64ab3377328fd5e3ed57246d214176f2 Reviewed-on: https://gerrit.libreoffice.org/72335 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-05-10an uno -> a unoCaolán McNamara
Change-Id: I538db88f8477dd2d2ad25c372928fec6c11d979d Reviewed-on: https://gerrit.libreoffice.org/72105 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
2019-05-09loplugin:unusedmethodsNoel Grandin
Change-Id: I7b4d2e5e611935284e2902b0089950768dfb7717 Reviewed-on: https://gerrit.libreoffice.org/72036 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-09loplugin:unusedfieldsNoel Grandin
Change-Id: I8dc5a6ef84f43bad0bee26592b3a8e95c58e6f22 Reviewed-on: https://gerrit.libreoffice.org/72027 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-09loplugin:unnecessaryvirtualNoel Grandin
Change-Id: I1fa8248efa16a718f273f20620281737b0da455d Reviewed-on: https://gerrit.libreoffice.org/72024 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-05-07loplugin:badstaticsNoel Grandin
add some more false+ which interestingly enough, only started showing up when I switched on --enable-pch=system Change-Id: I2d52644dc3665db19b28772eb818c138e063dae4
2019-05-05avoid false warnings from oslendian clang plugin if PCH is usedLuboš Luňák
Change-Id: I3ab8371b14068601995616dc9979a3297313d761 Reviewed-on: https://gerrit.libreoffice.org/71563 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-05-05Fix typoAndrea Gelmini
Change-Id: I87fa75d2aab64031426ce0560344908bd81d413c Reviewed-on: https://gerrit.libreoffice.org/71816 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-05-03Fix building compilerplugins with Clang trunk towards Clang 9Stephan Bergmann
...after <https://github.com/llvm/llvm-project/commit/ f19a8b05171a67a290e7d3bd6eba0c95c7b3259c> "Replace ad-hoc tracking of pattern for an instantiated class-scope" removed ASTContext::getClassScopeSpecializationPattern. None of the affected plugins are enabled by default (nor checked by solenv/CompilerTest_compilerplugins_clang.mk), so just make sure they still compile, leaving any potentially necessary adaptions to another commit. Change-Id: I7102851409e78eff284b50337f7ad0f721e1e548 Reviewed-on: https://gerrit.libreoffice.org/71702 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-30revert part of "improve loplugin:stringconstant"Noel Grandin
Revert part of commit dd8d5e5795358d732a9f7a8af7c35f662321e332 Date: Mon Apr 29 11:18:21 2019 +0200 improve loplugin:stringconstant sberg's original gerrit comment: but there can also be other problematic overloads for parameters like `void const *` or `std::string_view`. I'm not sure this change is worth the potential false positives. and continuing IRC discussion: <noelgrandin> I'll revert the compilerplugins/ part <sberg> noelgrandin, my main concern is that /if/ somebody eventually runs into such an overload situation, it's really hard to get the warnings/errors fixed for those people, short of going into the plugin itself Change-Id: I4916ce8943c4319d7ef9084e22d6a0eeb430b15c
2019-04-30improve loplugin:stringconstantNoel Grandin
to find more places we can elide the OUString() constructor at call sites Change-Id: Ie09f3c61f2c4b4959c97dc98ebcbaf7c51d5d713 Reviewed-on: https://gerrit.libreoffice.org/71514 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-30implement std::hash for css::uno::Reference and rtl::ReferenceNoel Grandin
The declaration in BarChart.cxx is particularly suspicious, because it was using a < for the KeyEqual template parameter. Been there since: commit b2c3233e5f267b5d244d722a94424a3b224b3314 Date: Thu Dec 21 20:08:33 2017 +0900 chart2: suspend/resume setting rects dirty for 3D shapes comphelper::OInterfaceCompare is no longer necessary Change-Id: I8278c4a3d9113a18570ca237cd05d553ec8f3975 Reviewed-on: https://gerrit.libreoffice.org/71537 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-29Fix typoAndrea Gelmini
Change-Id: I6e04287504cc8d4c0e3d09632ee1c7355157e5ee Reviewed-on: https://gerrit.libreoffice.org/71500 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-28Fix typoAndrea Gelmini
Change-Id: Id6985abca7702039168381082da4e47603b9aaf3 Reviewed-on: https://gerrit.libreoffice.org/71451 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-28Fix typoAndrea Gelmini
Change-Id: I8c928576919c9410eda0a7f33b2120d13c3bc6bf Reviewed-on: https://gerrit.libreoffice.org/71450 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-26There is no ImplSVMainHook()Tor Lillqvist
Change-Id: Ief2636425712f60cfc6e8f68ee0d3fb01608d8ba Reviewed-on: https://gerrit.libreoffice.org/71317 Tested-by: Jenkins Reviewed-by: Tor Lillqvist <tml@collabora.com>
2019-04-26Fix typoAndrea Gelmini
Change-Id: Ie687feebfccf27c366922acfc29ff12cdfa325ba Reviewed-on: https://gerrit.libreoffice.org/71338 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-24tdf#89522 PERF FILEOPEN xlsx, part 1Noel Grandin
Inherit from tools::WeakBase non-virtually, so that we can use a static_cast in tools::WeakReference::get instead of a dynamic_cast. This takes the file-open time from 1m21 to 40s for me. Add a clang plugin to make sure we don't accidentally end up inheriting from tools::WeakBase more than once. Change-Id: I9c7c36403333f99094e1f9d8cce2ecd9200377f9 Reviewed-on: https://gerrit.libreoffice.org/71231 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-21Fix typoAndrea Gelmini
Change-Id: I7b94fdd366fd8e149ec6e2af458338e6a56b400c Reviewed-on: https://gerrit.libreoffice.org/71027 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-21Fix typoAndrea Gelmini
Change-Id: Iaaea14851bb935e4ddfc4e6573356a2314ecd866 Reviewed-on: https://gerrit.libreoffice.org/71029 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-19Fix typoAndrea Gelmini
Change-Id: I925942a89d7f01c008788aeada8009a37564b02f Reviewed-on: https://gerrit.libreoffice.org/70971 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-19optimise find/insert patternNoel Grandin
if we're doing a find/insert on a set or a map, it is better to just do a conditional insert/emplace operation than triggering two lookups. Change-Id: I80da5097f5a89fe30fa348ce5b6e747c34287a8d Reviewed-on: https://gerrit.libreoffice.org/70937 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-18Removed spurious charsAndrea Gelmini
Same thing as in commit e5efd197ad403619ac274c88e2e3be648886aa3d Change-Id: I84faa989387cefef18aa25fa813890d04858f7f2 Reviewed-on: https://gerrit.libreoffice.org/68987 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2019-04-17New loplugin:selfinitStephan Bergmann
...to find more bugs like the one addressed in 6340daac7b99c65249363a4bb61c492de31ef5d6 "Revert broken loplugin:sequentialassign change". What it does is: "Warn when a variable is referenced from its own initializer. This is not invalid in general (see C++17 [basic.life]), but is at least suspicious." It found one false positive (addressed with 884ad0d1af88f9985d30ef0dfe92d89e82f8e576 "Split localProcessFactory function into class with setter and getter") and five true positives (addressed with e0ccbe72ed6eb0d309ed272a78fd67a512acff5d "Fix use of variable before its lifetime begins" and 0e335af4d3f044511551fa2ede20911beaee9b41 "Fix uses of variables before their lifetimes begin"). Change-Id: I4c45cceaa042e93b37ad24a54784c027f6ca1f87 Reviewed-on: https://gerrit.libreoffice.org/70897 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-15improve loplugin simplifyconstructNoel Grandin
to find stuff like OUString s = OUString("xxx") Change-Id: Ie7ed074c1ae012734c67a2a89c564c1900a4ab04 Reviewed-on: https://gerrit.libreoffice.org/70697 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>