Commit Graph
552 Commits
Author SHA1 Message Date
Noel Grandin 425255567e use more string_view
Change-Id: Ie826234aa9064b08b8f0647738b57c47ac0ed91a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141369
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-10-17 10:39:11 +02:00
Stephan Bergmann 91ba9654ba Move tools/diagnose_ex.h to comphelper/diagnose_ex.hxx
...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-18 17:10:19 +02:00
Julien Nabet 7b204ecb49 Related tdf#114790: add align and vertalign to datefield im/export
Change-Id: I2661e0c372fbb3c364ac338f23ebbd5b1a448ff0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137936
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-08-08 07:23:59 +02:00
Caolán McNamara cf2a7501fa Resolves: tdf#114790 add align and vertalign to currencyfield im/export
Change-Id: Idef9a94aeefb295cd349ed0216d08bc8e2faf079
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137925
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-08-07 17:05:34 +02:00
Noel Grandin 44a11bb8c9 clang-tidy modernize-pass-by-value in xml*
Change-Id: I9bd5f6adfd138c391d76aebfe08ba01e6b3ab3bf
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137550
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-07-28 10:42:37 +02:00
Noel Grandin f2c02331a7 new loplugin:unnecessary locking
off by default, since each warning needs careful inspection

Change-Id: I805c1d1cdde531a1afdc76e87b22f879fc3c9753
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134641
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-05-20 08:03:27 +02:00
Stephan Bergmann 0c34f61772 Just use Any ctor instead of makeAny in xmlscript
Change-Id: I6dbf6acdf051fefe73c82b7739105a73d3aabede
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133699
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-05-02 17:24:32 +02:00
Noel Grandin 5fe702f1b6 add o3tl::toUInt32
Change-Id: I07f11bf12fbe1d1c2d812fa0965d6e632e1e1aba
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133437
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-26 19:37:20 +02:00
Mike Kaganski 38979c6abd Prepare for removal of non-const operator[] from Sequence in xmlscript
Change-Id: I166e51e13974154dba4749568b1232eecd2fb8cc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124417
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-11-01 07:31:06 +01:00
Noel Grandin 283a9790bf loplugin:indentation check for indent inside block
look for places where the statements inside a block are
not indented

Change-Id: I0cbfa7e0b6fb194b2aff6fa7e070fb907d70ca2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123885
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-20 15:39:38 +02:00
Noel Grandin f4ac99f717 loplugin:moveparam in xmlscript
Change-Id: I8c33291dae8a4f90c02f47d823b127ca4e383d61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123338
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-10-10 19:45:48 +02:00
Noel Grandin 3a1a448ac4 loplugin:constvars
Change-Id: I9b35d6333afa6b305bf73fc55a7e60c8365674e9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122134
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-15 12:43:21 +02:00
Noel Grandin 05ab38359a Consolidate on C++17 std::scoped_lock instead of std::lock_guard
as in commit 9376f65a26

Change-Id: I3ad9afd4d113582a214a4a4bc7eea55e38cd6ff9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119927
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-03 12:20:53 +02:00
Noel Grandin 499adc4cc3 osl::Mutex->std::mutex in XMLBasicExporterBase
Change-Id: I5178e6bc6566186081e7a21e91cd8ca221b74cac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119751
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-01 10:41:25 +02:00
Julien Nabet 57796f2724 Simplify Sequences initializations (writerfilter/writerperfect/x*)
Change-Id: I1bd31fe6cf0f8aaf4f2cfe1d3d49e61a0633f361
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117057
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2021-06-11 16:03:10 +02:00
Noel Grandin 057b25c04e crashtesting fix
when doing
    soffice --convert-to ods tdf96952-1.xls

after
    commit 5c79032077
    Date:   Tue May 25 09:32:58 2021 +0200
    fix leaks in loading xmlscript

Change-Id: I55c1e95a09db937604f62a5b33e56349512ff8ac
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116435
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-31 16:19:53 +02:00
Noel Grandin a76ae1c3d1 no need to allocate Style objects separately
Change-Id: I88e4642a81b18c41216784332cc4a37a3bde9d95
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116247
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-27 14:58:28 +02:00
Noel Grandin 5c79032077 fix leaks in loading xmlscript
Change-Id: I18e663a6da34ef34630272819420ead6f3b8389d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116087
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-25 11:47:48 +02:00
Stephan Bergmann 10d29c390d throw() -> noexcept, part 2/3: Automatic loplugin:noexcept rewrite
Change-Id: I076f16d0536b534abf0ced4d76051eadb4c0e033
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114949
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-05-02 17:02:28 +02:00
Mani Kumar bd43c754d3 tdf#88205: Use initializer_list ctor in css::uno::Sequence
Change-Id: I95aaefa11c733f5c020600cf13510af1bc9c0de7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112652
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-18 07:29:56 +01:00
Mike Kaganski 96388e5e80 Drop 'static_cast<cppu::OWeakObject*>' syntactic noise
... where the object is created in-place, and its type is known

Change-Id: Ifabfcf2f3ad0d60152f14e8d970c1faa42115288
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112256
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-03-10 08:22:26 +01:00
Noel 85e51d1fb5 loplugin:refcounting in xmlscript
Change-Id: I82e3fe7ec8f45d9e99ec51688df97a0e5a33f58c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111169
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-19 08:46:06 +01:00
Noel 466ec5aa2a loplugin:referencecasting in xmlscript
Change-Id: Ib5c1f471e0b69e4474d06b4fb55c933d701a1d9d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111080
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-02-18 08:16:36 +01:00
Caolán McNamara ac396f2f6b fix coverity parse errors
Change-Id: I3a1179947704452e3ffec02be59d0f7bf0b75ab0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/109017
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-01-09 13:01:49 +01:00
Stephan Bergmann a3d0091d18 New loplugin:stringliteralvar
See the comment at the top of compilerplugins/clang/stringliteralvar.cxx for
details.

(Turned some affected variables in included files into inline variables, to
avoid GCC warnings about unused variables.)

Change-Id: Ie77219e6adfdaaceaa8b4e590b08971f2f04c83a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108239
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-12-26 14:51:15 +01:00
Noel 8332d6d820 loplugin:stringviewparam include comparisons with string literals
Change-Id: I8ba1214500dddaf413c506a4b82f43d63cda804b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106559
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-30 12:32:14 +01:00
Noel bb06f51308 loplugin:stringviewparam extend to comparison operators
which means that some call sites have to change to use
unicode string literals i.e. u"foo" instead of "foo"

Change-Id: Ie51c3adf56d343dd1d1710777f9d2a43ee66221c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/106125
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-11-24 09:45:04 +01:00
Philipp Hofer 25e14502fd tdf#123936 Formatting files in module xmlscript with clang-format
Change-Id: Icf80c9d282d31c5513daf38c81802988e4fe300b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105733
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-11-18 12:28:35 +01:00
Serge Krot f4a5893ece tdf#137652 fix XDL import: no more missing empty items for combobox
Change-Id: I6837968ee7cc5e4b3bc9abd7e320f562c6ff0833
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104619
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-10-22 16:30:48 +02:00
Caolán McNamara de74d98c58 OUStringLiteral/OStringLiteral coverity PARSE_ERROR workaround
do more like

commit 121771e37f
Date:   Mon Sep 21 09:17:54 2020 +0200

    Make some OUStringLiteral vars constexpr

cause coverity can live with that

Change-Id: I9efd7f848289c4865997a44c6780373068422227
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103147
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-09-22 12:58:14 +02:00
Stephan Bergmann 33ecd0d5c4 Change OUStringLiteral from char[] to char16_t[]
This is a prerequisite for making conversion from OUStringLiteral to OUString
more efficient at least for C++20 (by replacing its internals with a constexpr-
generated sal_uString-compatible layout with a SAL_STRING_STATIC_FLAG refCount,
conditionally for C++20 for now).

For a configure-wise bare-bones build on Linux, size reported by `du -bs
instdir` grew by 118792 bytes from 1155636636 to 1155755428.

In most places just a u"..." string literal prefix had to be added.  In some
places

  char const a[] = "...";

variables have been changed to char16_t, and a few places required even further
changes to code (which prompted the addition of include/o3tl/string_view.hxx
helper function o3tl::equalsIgnoreAsciiCase and the additional
OUString::createFromAscii overload).

For all uses of macros expanding to string literals, the relevant uses have been
rewritten as

  u"" MACRO

instead of changing the macro definitions.  It should be possible to change at
least some of those macro definitions (and drop the u"" from their call sites)
in follow-up commits.

Change-Id: Iec4ef1a057d412d22443312d40c6a8a290dc6144
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101483
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-28 08:07:09 +02:00
Noel Grandin 3457da6abe loplugin:stringstatic also look for local statics
Add some API to O*StringLiteral, to make it easier
to use in some places that were using O*String

Change-Id: I1fb93bd47ac2065c9220d509aad3f4320326d99e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100270
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-13 08:16:03 +02:00
Noel Grandin cda88ec7a4 loplugin:simplifybool a little more aggressive
with expressions like !(a && b)

Change-Id: Id2acec2a8d0eaaa8e5e37dbd2cae7281be36572e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100040
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-04 11:21:36 +02:00
Noel Grandin 5ef5c1b294 loplugin:flatten in xmlscript
Change-Id: I326aa7ebea7925f580fd12c6c58f62e4add20d84
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99965
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-08-02 22:44:21 +02:00
Noel Grandin 67f4ece34f xmlscript: create instances with uno constructors
See tdf#74608 for motivation

Change-Id: I648835e938746ff4f89b05d73d8960f9f8953070
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98191
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-07-06 20:17:26 +02:00
Stephan Bergmann 54c866828a Upcoming improved loplugin:staticanonymous -> redundantstatic: xmlscript
Change-Id: I59dc2d6949eb51394874403e62079ad75063882d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97773
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-02 19:42:13 +02:00
Noel Grandin 1290305734 compact namespace in xmlhelp..xmlsecurity
Change-Id: I54f0a47a4b7a1f85481fd1e643ac55459d0383ec
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93907
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-10 13:56:07 +02:00
Stephan Bergmann b512ce255f Make upcasting css::uno::Reference ctor require complete types
The main reason for the "home-grown" UpCast introduced with
904b3d1fce "Up-cast conversion constructor for
css::uno::Reference" in 2013 was probably that we could not yet rely on C++11
std::is_base_of back then.  A (welcome) side effect was that the derived class
could be incomplete.

However, specializations of UpCast relying on whether or not T2 is incomplete
are obviously an ODR violation if the type is incomplete in some TUs and
complete (and derived from T1) in others.  And even if UpCast had internal
linkage, it would still be brittle that its behavior depends on the completeness
of T2 at the point of the template's instantiation, and not necessarily at the
point of use.

That means we should better base that ctor on std::is_base_of (which we can do
now since 39a1edd6fe "Make css::uno::Reference
upcast ctor LIBO_INTERNAL_ONLY"), which causes a compilation error at least on
Clang and GCC if the completeness requirements are not met.  This change fixes
all the cases where types need to be complete now, plus any resulting
loplugin:referencecasting warnings ("the source reference is already a subtype
of the destination reference").

Change-Id: Ieb9e3552e90adbf2c5a5af933dcb872e20661a2f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92950
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-04-27 07:19:30 +02:00
Noel Grandin 7224bb9bcd loplugin:unusedvariableplus in ucb,xmlscript
Change-Id: I8fac8c7766df7c6be489280fcac2a423183429c3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91790
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-07 10:16:11 +02:00
Samuel Mehrbrodt 6d9cf22b22 tdf#130793 Fix import/export of image URLs
Change-Id: I329af3b0d5a81d9f31def9c2ad861d0e83e3714c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89388
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2020-02-26 06:40:23 +01:00
Noel Grandin 214e6caf2c [API CHANGE] remove BasicImport UNO interfaces
which are unused since
    commit 4e97fa0f4e
    Date:   Thu Feb 20 13:09:32 2020 +0200
    use fast-parser APIs for embedded script parsing

and highly unlikely to be externally used since they parse document
internal script code.

Change-Id: I2e0e237fb31bba85f1ef63c88f3a6959eedf2ca7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/89104
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-02-25 18:07:04 +01:00
Andrea Gelmini 4c0c333388 Fix typo
Thanks to Valter:
https://listarchives.libreoffice.org/global/l10n/msg12412.html

Change-Id: I2b79bc19de31b014cbf2519ae01e5214252f24a5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86505
Tested-by: Jenkins
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
2020-02-16 10:23:08 +01:00
Stephan Bergmann aef7feb3e6 New loplugin:unsignedcompare
"Find explicit casts from signed to unsigned integer in comparison against
unsigned integer, where the cast is presumably used to avoid warnings about
signed vs. unsigned comparisons, and could thus be replaced with
o3tl::make_unsigned for clairty." (compilerplugins/clang/unsignedcompare.cxx)

o3tl::make_unsigned requires its argument to be non-negative, and there is a
chance that some original code like

  static_cast<sal_uInt32>(n) >= c

used the explicit cast to actually force a (potentially negative) value of
sal_Int32 to be interpreted as an unsigned sal_uInt32, rather than using the
cast to avoid a false "signed vs. unsigned comparison" warning in a case where
n is known to be non-negative.  It appears that restricting this plugin to non-
equality comparisons (<, >, <=, >=) and excluding equality comparisons (==, !=)
is a useful heuristic to avoid such false positives.  The only remainging false
positive I found was 0288c8ffec "Rephrase cast
from sal_Int32 to sal_uInt32".

But which of course does not mean that there were no further false positivies
that I missed.  So this commit may accidentally introduce some false hits of the
assert in o3tl::make_unsigned.  At least, it passed a full (Linux ASan+UBSan
--enable-dbgutil) `make check && make screenshot`.

It is by design that o3tl::make_unsigned only accepts signed integer parameter
types (and is not defined as a nop for unsigned ones), to avoid unnecessary uses
which would in general be suspicious.  But the STATIC_ARRAY_SELECT macro in
include/oox/helper/helper.hxx is used with both signed and unsigned types, so
needs a little oox::detail::make_unsigned helper function for now.  (The
ultimate fix being to get rid of the macro in the first place.)

Change-Id: Ia4adc9f44c70ad1dfd608784cac39ee922c32175
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87556
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-28 07:42:15 +01:00
Noel Grandin 175a2063ef use more std::make_shared
found using 'git grep', I tried using clang-tidy, but it only
successfully found a tiny fraction of these

Change-Id: I61c7d85105ff7a911722750e759d6641d578da33
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86526
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-01-10 13:07:41 +01:00
Andrea Gelmini 77f4eb0bfe tdf#124176: Use "pragma once" on xmlscript/*
It passed "make check" on Linux

Change-Id: Id8727da150ad1b5252fbc997ff5df28b23303fb6
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85882
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-12-28 12:04:11 +01:00
Noel Grandin 6eef1937db sal_Char->char in xmloff..xmlsecurity
Change-Id: I292d699ce1de10ca9341525161f5da2592102ff7
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85778
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-25 15:55:19 +01:00
Noel Grandin f656547d4d remove some useless comment lines
which merely announce that the next declaration is a class

Change-Id: Ifdb1398bcd99816b13e0b3769b46d0562bfbc1dc
Reviewed-on: https://gerrit.libreoffice.org/84229
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-03 12:46:27 +01:00
Stephan Bergmann f853ec317f Extend loplugin:external to warn about classes
...following up on 314f15bff0 "Extend
loplugin:external to warn about enums".

Cases where free functions were moved into an unnamed namespace along with a
class, to not break ADL, are in:

  filter/source/svg/svgexport.cxx
  sc/source/filter/excel/xelink.cxx
  sc/source/filter/excel/xilink.cxx
  svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx

All other free functions mentioning moved classes appear to be harmless and not
give rise to (silent, even) ADL breakage.  (One remaining TODO in
compilerplugins/clang/external.cxx is that derived classes are not covered by
computeAffectedTypes, even though they could also be affected by ADL-breakage---
but don't seem to be in any acutal case across the code base.)

For friend declarations using elaborate type specifiers, like

  class C1 {};
  class C2 { friend class C1; };

* If C2 (but not C1) is moved into an unnamed namespace, the friend declaration
must be changed to not use an elaborate type specifier (i.e., "friend C1;"; see
C++17 [namespace.memdef]/3: "If the name in a friend declaration is neither
qualified nor a template-id and the declaration is a function or an
elaborated-type-specifier, the lookup to determine whether the entity has been
previously declared shall not consider any scopes outside the innermost
enclosing namespace.")

* If C1 (but not C2) is moved into an unnamed namespace, the friend declaration
must be changed too, see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71882>
"elaborated-type-specifier friend not looked up in unnamed namespace".

Apart from that, to keep changes simple and mostly mechanical (which should help
avoid regressions), out-of-line definitions of class members have been left in
the enclosing (named) namespace.  But explicit specializations of class
templates had to be moved into the unnamed namespace to appease
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92598> "explicit specialization of
template from unnamed namespace using unqualified-id in enclosing namespace".

Also, accompanying declarations (of e.g. typedefs or static variables) that
could arguably be moved into the unnamed namespace too have been left alone.

And in some cases, mention of affected types in blacklists in other loplugins
needed to be adapted.

And sc/qa/unit/mark_test.cxx uses a hack of including other .cxx, one of which
is sc/source/core/data/segmenttree.cxx where e.g. ScFlatUInt16SegmentsImpl is
not moved into an unnamed namespace (because it is declared in
sc/inc/segmenttree.hxx), but its base ScFlatSegmentsImpl is.  GCC warns about
such combinations with enabled-by-default -Wsubobject-linkage, but "The compiler
doesn’t give this warning for types defined in the main .C file, as those are
unlikely to have multiple definitions."
(<https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/Warning-Options.html>)  The
warned-about classes also don't have multiple definitions in the given test, so
disable the warning when including the .cxx.

Change-Id: Ib694094c0d8168be68f8fe90dfd0acbb66a3f1e4
Reviewed-on: https://gerrit.libreoffice.org/83239
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-22 12:57:32 +01:00
Noel Grandin e276c81264 size some stringbuffer to prevent re-alloc
I started with 32 and kept doubling the size until the site
did not need re-alloc, but clamped it at 512 (e.g. in emfio/).

Change-Id: Ib7caf35a1b7e42b0e4ed8aa812493449e3eefc8f
Reviewed-on: https://gerrit.libreoffice.org/81540
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-10-26 12:38:33 +02:00
Gabor Kelemen 3dfb4c47ad tdf#42949 Fix IWYU warnings in xmlscript/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I7f15170473100c50bd4d287ec8cb4a8d6186c703
Reviewed-on: https://gerrit.libreoffice.org/81164
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-10-21 14:35:41 +02:00