summaryrefslogtreecommitdiff
path: root/compilerplugins
AgeCommit message (Collapse)Author
2022-11-05loplugin:stringconcatauto: There's no dangling-ref issue with O[U]StringNumberStephan Bergmann
...so it's unclear why 2f5f45921b05904a4be1ff633be09c62cb44ff08 "support O(U)String::number() for fast string concatenation" added that here. On the contrary, variables of type OStringNumber can be useful replacements for calls to std::sprintf (which started to emit deprecation warnings with macOS 13 SDK now), so this is in preparation for follow-up commits that will replace many uses of that across the code base with various alternatives. Change-Id: I6f8508d49dc84773c50f4c33dba38fe08c4c8969 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142318 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-26Adapt compilerplugins to recent Clang 16 trunk changeStephan Bergmann
<https://github.com/llvm/llvm-project/commit/1acffe81ee9117691812b9bf8747c03354177d15> "NFC: [clang] Template argument cleanups." Change-Id: I84bc276c21efcc11643ae7003e0fee6c7592130f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141860 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-22loplugin:unusedmethodsNoel Grandin
Change-Id: I3c94d68cb85adc2005a5a5e3b03a311732f782c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141617 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-21loplugin:referencecasting look for a new patternNoel Grandin
Change-Id: Ib7ded8db2c513909159f0876389f63b60082a529 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141618 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-21loplugin:unnecessaryvirtualNoel Grandin
Make the script filter out more external code Change-Id: I131da451e148e193552ead7c1441b06b726df619 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141616 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-18Adapt compilerplugins to recent Clang 16 trunk changeStephan Bergmann
<https://github.com/llvm/llvm-project/commit/bcd9ba2b7e64f6ce54defd2fa73fc8e0fee5707c> "[clang] Track the templated entity in type substitution." Change-Id: I314d1567512dc0332b3c61c95978b0230f52b274 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141462 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-17loplugin:redundantcast look for redundant dynamic_cast<T&>Noel Grandin
Change-Id: If5a8e74b7ede80b782b584b4f62ec1b8713fd86d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141445 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-14Clean up loplugin:stringviewStephan Bergmann
...after 3d236177be255b2027a997bfc12fe0833ca9a2f7 "Deduplicate O(U)StringConcatenation" changed OStringConcat and OUStringConcat into aliases (so they will get looked through by loplugin::TypeCheck::Struct's use of getAs<clang::RecordType> in compilerplugins/clang/check.hxx), but apparently forgot to drop their respective checks here. (That the then-added check for StringConcat works as intended is verified by compilerplugins/clang/test/stringview.cxx, btw.) Change-Id: I3f8e26998d0a55704f0433a818493ef541fd05eb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141370 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-14Clean up loplugin:stringaddStephan Bergmann
...after 3d236177be255b2027a997bfc12fe0833ca9a2f7 "Deduplicate O(U)StringConcatenation" changed OStringConcat and OUStringConcat into aliases (so they can never show up here in a "getUnqualifiedDesugareType"), but apparently forgot to drop their respective checks here. (That the then-added check for StringConcat works as intended is verified by compilerplugins/clang/test/stringadd.cxx, btw.) Change-Id: I2b589d977dbf2a384348cb7ee62acce30031ccec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141364 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-14Fix loplugin:stringconcatautoStephan Bergmann
...after af2879e434fa0dc6b2a626617ed865e4f66eb5ad "Deduplicate stringconcat more" changed the *StringNumberBase::toAsciiUperCase return typr from O[U]StringNumber to the underlying StringNumberBase. (And where that commit had added some odd check for a non-existing "StringNumber" type to compilerplugins/clang/stringconcatauto.cxx, presumably in error.) Change-Id: I622e6ae30fcec8f081c978eaf67ffb716a10ee4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141363 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-13Drop now-redundant %selectStephan Bergmann
...after 3d236177be255b2027a997bfc12fe0833ca9a2f7 "Deduplicate O(U)StringConcatenation" Change-Id: Ib45d021da2bb5745055fa0cdebfd700680bfb787 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141304 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-13Adapt CompilerTest_compilerplugins_clang to recent ClangStephan Bergmann
...where at least my recent Clang 16 trunk build now started to fail after af2879e434fa0dc6b2a626617ed865e4f66eb5ad "Deduplicate stringconcat more" with > error: 'error' diagnostics expected but not seen: > File compilerplugins/clang/test/stringview.cxx Line 171 (directive at compilerplugins/clang/test/stringview.cxx:170): instead of an '{{(rtl::)?}}OString' constructed from a 'OStringConcat<rtl::OString, rtl::OString>' (aka 'StringConcat<char, rtl::OString, rtl::OString>'), pass a 'std::string_view' via 'rtl::Concat2View' [loplugin:stringview] > File compilerplugins/clang/test/stringview.cxx Line 196 (directive at compilerplugins/clang/test/stringview.cxx:195): instead of an '{{(rtl::)?}}OUString' constructed from a 'OUStringConcat<rtl::OUString, rtl::OUString>' (aka 'StringConcat<char16_t, rtl::OUString, rtl::OUString>'), pass a 'std::u16string_view' via 'rtl::Concat2View' [loplugin:stringview] > error: 'error' diagnostics seen but not expected: > File compilerplugins/clang/test/stringview.cxx Line 171: instead of an 'OString' constructed from a 'OStringConcat<OString, OString>' (aka 'StringConcat<char, rtl::OString, rtl::OString>'), pass a 'std::string_view' via 'rtl::Concat2View' [loplugin:stringview] > File compilerplugins/clang/test/stringview.cxx Line 196: instead of an 'OUString' constructed from a 'OUStringConcat<OUString, OUString>' (aka 'StringConcat<char16_t, rtl::OUString, rtl::OUString>'), pass a 'std::u16string_view' via 'rtl::Concat2View' [loplugin:stringview] > 4 errors generated. > make[1]: *** [solenv/gbuild/LinkTarget.mk:337: workdir/CxxObject/compilerplugins/clang/test/stringview.o] Error 1 Change-Id: I0b8c7d4a012c40c2c2c3cc8a9e55c52f45e8cfc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141295 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-10-13Deduplicate stringconcat moreMike Kaganski
In the process, drop ToStringHelper::allowO(U)StringConcat, because we can deduce this information from ToStringHelper's addData itself. To do that, addData was converted to ToStringHelper::operator(), which allows to use std::is_invocable_v on the helper class. Change-Id: Ic77878ca0ff65ada8c0a942191bc11de15b9ad2a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141254 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-12tdf#147021 REVERT Use std::size() instead of SAL_N_ELEMENTS() macrojsala
Reverting this changes made by error. See https://gerrit.libreoffice.org/c/core/+/136263/6/compilerplugins/clang/test/constvars.cxx#25 Change-Id: Ica49759682adf55a1f0cef2a842acab603c62dac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141259 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins
2022-10-11Deduplicate O(U)StringConcatenationMike Kaganski
And use an overloaded helper function with a better (?) unified name to show that the result is not an O(U)String. Change-Id: I8956338b05d02bf46a6185828130ea8ef145d46b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141203 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-09-25unwrap SwDelChr to plain SfxHintBjoern Michaelsen
Change-Id: Ief37a8025181b6cc8a6e484e2726d8a8d92f57ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140567 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2022-09-25unwrap SwInsText to a plain SfxHintBjoern Michaelsen
- also add some constnesss and move some things to private Change-Id: I67a45e1326361b5a8f7e320b3525e74e93b1ef12 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140556 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2022-09-24unwrap SwDelText to a plain SfxHintBjoern Michaelsen
Change-Id: I559f8f1e837830426e820dace6226618c5e0fc62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140210 Tested-by: Jenkins Reviewed-by: Bjoern Michaelsen <bjoern.michaelsen@libreoffice.org>
2022-09-23remove some dead codeNoel Grandin
after commit 590796ca0866168e3129d2abd0a0197114cddcdc Author: Noel Grandin <noelgrandin@gmail.com> Date: Wed Sep 21 20:44:42 2022 +0200 convert TrueTypeTable to C++ class Change-Id: I5c656011ebe37529788cea6a749c07ada2378385 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140433 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-21Extend loplugin:redundantcast to some suspicious reinterpret_castStephan Bergmann
Change-Id: I5534939bfbea67d216a17891722a683c53621d36 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140303 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-09-14new loplugin refcountingbaseNoel Grandin
Look for classes that have more than one ref-counting base class. A situation which is going to cause trouble. Which reveals that sdr::table::Cell has two different ref-counting bases, so rather make SdrText extends OWeakObject, which means that Cell can just have one ref-counting base, Change-Id: I8d968270f7b449cff2f29da0bd48fa17181c68c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139807 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-08Clean up some #includesStephan Bergmann
...after 9e7e95a57b7c16941d9fdc59f806c1f9e4263379 "tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro" (and somewhat pedantically use the canonical <iterator> for std::size, even though the existing <vector> defines it, too) Change-Id: Iacf0a0619b496bfe7c6abb0a812b6a1b3eed40c2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139653 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-09-08loplugin:unnecessaryvirtualNoel Grandin
Change-Id: I4461ca826960b194cf45ae4917093f3273b3b0a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139643 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-08loplugin:virtualdeadNoel Grandin
Change-Id: Iceb6916bcc8c211a72fccfa4bbcbb22c96a72050 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139642 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-05vcl: Rename LongPress event to GestureLongPressPovilas Kanapickas
We have 5 gesture types: GestureZoom, GestureRotate, GesturePan, GestureSwipe and LongPress. For consistency all of these will use Gesture as a prefix to reduce confusion and for easier grepping throughout the codebase. Change-Id: I8b9e245d011203a19c1172f9833c172f65382cab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139244 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-05vcl: Rename Swipe event to GestureSwipePovilas Kanapickas
We have 5 gesture types: GestureZoom, GestureRotate, GesturePan, Swipe and LongPress. For consistency all of these will use Gesture as a prefix to reduce confusion and for easier grepping throughout the codebase. Change-Id: I8b9e245d011203a19c1172f9833c172f65382caa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139243 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-05vcl: Rename Gesture event to GesturePanPovilas Kanapickas
We have 5 gesture types: GestureZoom, GestureRotate, Gesture (for panning), Swipe and LongPress. For consistency all of these will use Gesture as a prefix to reduce confusion and for easier grepping throughout the codebase. Change-Id: I8b9e245d011203a19c1172f9833c172f65382ca9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139241 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-04tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macrojsala
Change associated for by std::find_if in sqlbison.y Also change some integer by std::size_t Change-Id: I0d2100fbd7c22729da6ce0462c6cc093e0767fb4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136263 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
2022-08-29ref-count SdrObjectNoel Grandin
Which means we can get rid of the majestic hack of ScCaptionPtr Previously, SdrObject was manually managed, and the ownership passed around in very complicated fashion. Notes: (*) SvxShape has a strong reference to SdrObject, where previously it had a weak reference. It is now strong since otherwise the SdrObject will go away very eagerly. (*) SdrObject still has a weak reference to SvxShape (*) In the existing places that an SdrObject is being deleted, we now just clear the reference (*) instead of SwVirtFlyDrawObj removing itself from the page that contains inside it's destructor, make the call site do the removing from the page. (*) Needed to take the SolarMutex in UndoManagerHelper_Impl::impl_clear because this can be called from UNO (e.g. sfx2_complex JUnit test) and the SdrObjects need the SolarMutex when destructing. (*) handle a tricky situation with SwDrawVirtObj in the SwDrawModel destructor because the existing code wants mpDrawObj in SwAnchoredObject to be sometimes owning, sometimes not, which results in a cycle with the new code. Change-Id: I4d79df1660e386388e5d51030653755bca02a163 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-18Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxxStephan Bergmann
...so that its TOOLS_WARN_EXCEPTION can be used in comphelper/source/misc/logging.cxx in a follow-up commit. (And while at it, rename from diangose_ex.h to the more appropriate diagnose_ex.hxx. The comphelper module is sufficiently low-level for this immediate use case, so use that at least for now; o3tl might be even more suitable but doesn't have a Library until now. Also, for the immediate use case it would have sufficed to only break DbgGetCaughtException, exceptionToString, TOOLS_WARN_EXCEPTION, TOOLS_WARN_EXCEPTION_IF, and TOOLS_INFO_EXCEPTION out of include/tools/diagnose_ex.h into an additional new include/comphelper/diagnose_ex.hxx, but its probably easier overall to just move the complete include file as is.) Change-Id: I9f3222d4ccf1a9ac29d7eb9ba1530d53e2affaee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138451 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-18loplugin:moveitNoel Grandin
Change-Id: I34de7408553e4ca702cab9aa611c03dc60b9b6a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138472 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-13loplugin:unusedmethodsNoel Grandin
tweak the python script to code with some clang weirdnes Change-Id: I88fc9f901748ff44af2b67704cc437b770ef0737 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138196 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-12loplugin:unusedfieldsNoel Grandin
Change-Id: I8d15b380cd02237f688b8946530e1f024b698e90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138195 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-10loplugin:passstuffbyrefNoel Grandin
Change-Id: Ib2b2650da7abc9260897f9b5aad619a0ea6ae941 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138052 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-08-08Adapt to changed clang::LambdaCapture::getCapturedVar return typeStephan Bergmann
...where <https://github.com/llvm/llvm-project/commit/127bf44385424891eb04cff8e52d3f157fc2cb7c> "[Clang][C++20] Support capturing structured bindings in lambdas" on Clang 16 trunk changed the return type from VarDecl to ValueDecl, causing > compilerplugins/clang/reducevarscope.cxx:541:26: error: no matching member function for call to 'erase' > maVarDeclMap.erase(varDecl); > ~~~~~~~~~~~~~^~~~~ > /usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/unordered_map.h:740:7: note: candidate function not viable: no known conversion from 'ValueDecl *' to 'const_iterator' (aka '_Node_const_iterator<std::pair<const clang::VarDecl *const, (anonymous namespace)::ReduceVarScope::DepthInfo>, __constant_iterators::value, __hash_cached::value>') for 1st argument > erase(const_iterator __position) > ^ > /usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/unordered_map.h:745:7: note: candidate function not viable: no known conversion from 'ValueDecl *' to 'iterator' (aka '_Node_iterator<std::pair<const clang::VarDecl *const, (anonymous namespace)::ReduceVarScope::DepthInfo>, __constant_iterators::value, __hash_cached::value>') for 1st argument > erase(iterator __position) > ^ > /usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/unordered_map.h:762:7: note: candidate function not viable: cannot convert from base class pointer 'ValueDecl *' to derived class pointer 'const key_type' (aka 'const clang::VarDecl *const') for 1st argument > erase(const key_type& __x) > ^ > /usr/lib/gcc/x86_64-redhat-linux/12/../../../../include/c++/12/bits/unordered_map.h:780:7: note: candidate function not viable: requires 2 arguments, but 1 was provided > erase(const_iterator __first, const_iterator __last) > ^ etc. Change-Id: I79b062ca604435bc83a58eeb32df673e6c658bd6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137984 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-08Adapt to changes in llvm::OptionalStephan Bergmann
<https://github.com/llvm/llvm-project/commit/3c49576417bab1b07764aa0b22664cbc8d3c3f53> "[ADT] Add has_value, value, value_or to llvm::Optional" is in Clang 15, and <https://github.com/llvm/llvm-project/commit/b5f8d42efe3e246d582d4a1a328fac915e4ce8dc> "[ADT] Deprecate Optional::{hasValue,getValue} (NFC)" is in Clang 16 trunk, causing > In file included from compilerplugins/clang/sharedvisitor/sharedvisitor.cxx:95: > compilerplugins/clang/pointerbool.cxx:118:21: error: 'hasValue' is deprecated: Use has_value instead. [-Werror,-Wdeprecated-declarations] > if (ret.hasValue() && (ret.getValue() == 1 || ret.getValue() == 0)) > ^ > ~/llvm/inst/include/llvm/ADT/Optional.h:324:5: note: 'hasValue' has been explicitly marked deprecated here > [[deprecated("Use has_value instead.")]] constexpr bool hasValue() const { > ^ etc. Change-Id: I377effe29fc6752484d2870b9a0fd66fddc26bfc Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137982 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-08-04Adapt test to LLVM 16 trunk libc++Stephan Bergmann
...see <https://github.com/llvm/llvm-project/commit/309aed306817e5b1a302d8f757231c734cf71370> "[libc++] Implement P1423R3 (char8_t backward compatibility remediation)" causing > error: 'error' diagnostics seen but not expected: > compilerplugins/clang/test/getstr.cxx Line 43: overload resolution selected deleted operator '<<' Change-Id: Ic2fb9409cf3033300aca6717a8db7889e9d03c6a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137786 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-07-28remove unused SETBULLETTEXT flag in editengJustin Luth
Already unused in initial import. Change-Id: I423442a2b036c64727af608fa667f1f8a427391f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137542 Tested-by: Jenkins Reviewed-by: Justin Luth <jluth@mail.com>
2022-07-25loplugin:moveitNoel Grandin
make the plugin more conservative, so we see less false+ (although we also miss some possibilities in the process) Change-Id: I91b1806271e7f802d7459834ab7bcc569047da3a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137342 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-14Adapt to Clang 15 trunk increase in ElabortatedType sugarStephan Bergmann
...<https://github.com/llvm/llvm-project/commit/bdc6974f92304f4ed542241b9b89ba58ba6b20aa> "[clang] Implement ElaboratedType sugaring for types written bare". For one, it caused diagnostics to now emit 'OString' instead of 'rtl::OUString' etc., which required adapting a number of tests. For another, some tests started to fail because the relevant plugins didn't expect ElaboratedType sugar in places where it now occurs: > error: 'error' diagnostics expected but not seen: > File compilerplugins/clang/test/redundantcast.cxx Line 297: redundant cstyle cast from 'Enum1' to 'Enum1' [loplugin:redundantcast] > File compilerplugins/clang/test/redundantcast.cxx Line 308: redundant cstyle cast from 'Enum1' to 'Enum1' [loplugin:redundantcast] > error: 'error' diagnostics expected but not seen: > File compilerplugins/clang/test/referencecasting.cxx Line 25 (directive at compilerplugins/clang/test/referencecasting.cxx:24): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 37 (directive at compilerplugins/clang/test/referencecasting.cxx:36): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 48 (directive at compilerplugins/clang/test/referencecasting.cxx:47): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 100 (directive at compilerplugins/clang/test/referencecasting.cxx:99): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 120 (directive at compilerplugins/clang/test/referencecasting.cxx:119): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 188 (directive at compilerplugins/clang/test/referencecasting.cxx:187): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 200 (directive at compilerplugins/clang/test/referencecasting.cxx:199): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > File compilerplugins/clang/test/referencecasting.cxx Line 206 (directive at compilerplugins/clang/test/referencecasting.cxx:205): the source reference is already a subtype of the destination reference, just use = [loplugin:referencecasting] > error: 'error' diagnostics seen but not expected: > File compilerplugins/clang/test/typedefparam.cxx Line 42: function param 1 at definition site does not match function param at declaration site, 'FooT *' (aka 'test2::Foo *') vs 'struct Foo *' [loplugin:typedefparam] > File compilerplugins/clang/test/typedefparam.cxx Line 55: function param 1 at definition site does not match function param at declaration site, 'FooT *' (aka 'test3::Foo *') vs 'Foo *' [loplugin:typedefparam] > error: 'note' diagnostics seen but not expected: > File compilerplugins/clang/test/typedefparam.cxx Line 40: declaration site here [loplugin:typedefparam] > File compilerplugins/clang/test/typedefparam.cxx Line 53: declaration site here [loplugin:typedefparam] Hopefully, there are not too many places in our plugins left that similarly don't expect ElaboratedType sugar in certain places, but which are not covered by tests. At least, a full build didn't turn up any further false positives, but there may of course be false negatives now that would go undetected. Change-Id: I9bfb1cfb57df5f6e228b512c19c664d48285b675 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137049 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-07-14loplugin:moveitNoel Grandin
Change-Id: I2702e716dc669ffbb870d36d060e110288d7a744 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137043 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-07Retire loplugin:toolslongStephan Bergmann
...which already carries some rather lengthy excludelists (indicating that the idea of "every `long` is wrong" is rather fishy), and now gets in the way of <https://gerrit.libreoffice.org/c/core/+/135714> "i18nlangtag: replace tools::Long with long" Change-Id: I5065064cf4ac61fe97a4c99ba4d493a807cdbf06 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136852 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-06move old/unused plugins to storeNoel Grandin
noting that I have only plugins that I wrote or worked on extensively Change-Id: Ic4931a6ac2df7902cac3968900330a7ce4eb2d57 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136841 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-01Adapt to LLVM 15 trunk clang::StringLiteral::isAscii renameStephan Bergmann
<https://github.com/llvm/llvm-project/commit/a9a60f20e6cc80855864b8f559073bc31f34554b> "[Clang] Rename StringLiteral::isAscii() => isOrdinary() [NFC]" Change-Id: Iac293c19bd135a94dcc3a3ef9f252ca6175c959a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136744 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-29Adapt to LLVM 15 trunk libc++ dropping std::unary_/binary_functionStephan Bergmann
...for C++17 and beyond with <https://github.com/llvm/llvm-project/commit/681cde7dd8b5613dbafc9ca54e0288477f946be3> "[libc++] Complete the implementation of N4190". (Unless explicitly opted-in with _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION. This is similar to the MSVC standard library needing _HAS_AUTO_PTR_ETC=1 to enable those zombie functions for quite some time now. Only libstdc++ still supports them unconditionally.) Most uses of those zombie functions across LibreOffice itself and the bundled external/* are indirectly within Boost include files. And many (but not all) of those Boost include files only use those zombie functions conditionally, based on BOOST_NO_CXX98_FUNCTION_BASE. For the (Dinkumware-derived) MSVC standard library, workdir/UnpackedTarball/boost/boost/config/stdlib/dinkumware.hpp already defined BOOST_NO_CXX98_FUNCTION_BASE. So add a patch to define that also in workdir/UnpackedTarball/boost/boost/config/stdlib/libcpp.hpp (for all of C++11 and beyond, even if those functions were still available as deprecated in C++11 and C++14, but which shouldn't make a difference with our C++17 baseline anyway; only make sure that things still work if those Boost include files ever get used by code built with gb_CXX03FLAGS). (Patching our bundled external/boost of course doesn't help when building with such a new libc++ and --with-system-boost against an unpatched Boost, but lets consider that "not my problem". Also, one could always use a sledgehammer like passing CPPFLAGS=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION into gbuild in such a case.) Then there are two places that include boost/multi_array.hpp, which indirectly includes workdir/UnpackedTarball/boost/boost/functional.hpp, which still uses those zombie functions for non-MSVC builds (at least in the bundled Boost 1.79.0). Lets do a targeted _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION in those cases. (Alternatively, we could patch workdir/UnpackedTarball/boost/boost/functional.hpp. Also, I decided to make loplugin:reservedid support the new suppression mechanism, rather than extending its existing ignorelist even further.) And then there is external/clucene using those zombie functions even outside of a Boost include file, so extend the existing hack there that was already needed for MSVC. (And adapt the accompanying comment: For one, we are unconditionally "in C++17 mode" by now. And for another, the exact places where external/clucene uses those functions have apparently changed over time.) Change-Id: Id0eec3bedcfddae86b16d33c02c7b5d3b3f8a16f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136579 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-24almost nobody is using the oox::AttributeList::get methods properlyNoel Grandin
Most of the call sites just ignore the fact that we are returning an optional value here. Which means that when an attribute is missing, they get an empty string or zero. And we seem to be fine with that. So make a plugin that warns about calling value() on a temporay OptValue. And add a utility method so we don't have to pay the cost of passing a default value to getString() The need for this is driven by wanting to change to std::optional, which will throw an exception if code attempts to read an empty std::optional Change-Id: Idb0a5ad1eac66b5caa93d6195928bad9e0b2ad70 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136283 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-16Fix typoAndrea Gelmini
Change-Id: I9b29e51e550ea9f13497e1f46cf4cdc11cf8faa6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135925 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-06-16loplugin:moveitNoel Grandin
Change-Id: Ic593974a44d9e327e0385c7ffaaa6d42576ae01a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135911 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-14better solution for ignoreLocation for tree-wide pluginsNoel Grandin
Change-Id: I7336003e038781d4ef50380fa49f66b5ff19379f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135589 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-06-13loplugin:mergeclasses sd::TitledDockingWindow with sd::PaneDockingWindowNoel Grandin
Change-Id: I77314048173ebba0dc0e03f710607b74e73f0bde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135719 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>