This should have been included in 9fbedb792993.
Change-Id: I3b8b1a463c3f85d6cd4a4db14edcfedf01d7e5a9
Reviewed-on: https://gerrit.libreoffice.org/74956
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
look for nested blocks where the inner block also contains a break
statement.
Change-Id: I1e5b6ca4c42b995c9479a68b34a1e2f1eb015f57
Reviewed-on: https://gerrit.libreoffice.org/74946
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
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>
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>
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>
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>
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>
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>
...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>
...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>
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>
add some more false+
which interestingly enough, only started showing up when I switched on
--enable-pch=system
Change-Id: I2d52644dc3665db19b28772eb818c138e063dae4
...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>
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
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>
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>
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>
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>
...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>