32 Commits
Author SHA1 Message Date
Mike Kaganski ad686b26ce No need to use SAL_THROW_EXTERN_C macro in CXX
Change-Id: I6eb9f0431a9402479a2d90d5b6f68b611d52a9f9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175957
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2024-11-02 22:16:06 +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 6f50961e69 remove more rtl::OUString and OString prefixes
which seem to have snuck back in since the great rounds of removals.

Change-Id: I85f7f5f4801c0b48dae8b50f51f83595b286d6a1
Reviewed-on: https://gerrit.libreoffice.org/62229
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-10-24 14:43:34 +02:00
Noel Grandin 3af500580b loplugin:salcall fix functions
since cdecl is the default calling convention on Windows for
such functions, the annotation is redundant.

Change-Id: I1a85fa27e5ac65ce0e04a19bde74c90800ffaa2d
Reviewed-on: https://gerrit.libreoffice.org/46164
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-11 12:13:46 +01:00
Stephan Bergmann 7a3aafb5a1 loplugin:includeform: cppu
Change-Id: I438346398fd8430cf4357b8a3d8e9f423966f2ca
2017-10-23 22:46:11 +02:00
Chris Sherlock 2cbd412168 cppu: remove unnecessary LOG_LIFECYCLE_* macros
Change-Id: I0f19cf7045e6ff2906404a73ce710e42800c0a72
Reviewed-on: https://gerrit.libreoffice.org/39994
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
Tested-by: Chris Sherlock <chris.sherlock79@gmail.com>
2017-07-17 21:46:35 +02:00
Stephan Bergmann 91dd2db17b loplugin:override: No more need for the "MSVC dtor override" workaround
The issue of 362d4f0cd4 "Explicitly mark
overriding destructors as 'virtual'" appears to no longer be a problem with
MSVC 2013.

(The little change in the rewriting code of compilerplugins/clang/override.cxx
was necessary to prevent an endless loop when adding "override" to

  OOO_DLLPUBLIC_CHARTTOOLS    virtual ~CloseableLifeTimeManager();

in chart2/source/inc/LifeTime.hxx, getting stuck in the leading
OOO_DLLPUBLIC_CHARTTOOLS macro.  Can't remember what that
isAtEndOfImmediateMacroExpansion thing was originally necessary for, anyway.)

Change-Id: I534c634504d7216b9bb632c2775c04eaf27e927e
2016-09-13 13:19:22 +02:00
Stephan Bergmann b36963c0a6 Replace "SAL_OVERRIDE" with "override" in LIBO_INTERNAL_ONLY code
Change-Id: I2ea407acd763ef2d7dae2d3b8f32525523ac8274
2015-10-12 17:52:29 +02:00
Stephan Bergmann 6ff2d84ade Various #include <sal/log.hxx> fixups
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx>
(and don't make use of it themselves), but many other files happen to depend on
it.  Cleaned up some, but something like

  grep -FwL sal/log.hxx $(git grep -Elw \
    'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF') -- \*.cxx)

shows lots more files that potentially need fixing before the include can be
removed from rtl/string.hxx and rtl/ustring.hxx.

Change-Id: Ibf033363e83d37851776f392dc0b077381cd8b90
2015-04-22 09:57:47 +02:00
Noel Grandin 71b809959b remove unnecessary use of void in function declarations
ie.
    void f(void);
becomes
    void f();

I used the following command to make the changes:

  git grep -lP '\(\s*void\s*\)' -- *.cxx \
    | xargs perl -pi -w -e 's/(\w+)\s*\(\s*void\s*\)/$1\(\)/g;'

and ran it for both .cxx and .hxx files.

Change-Id: I314a1b56e9c14d10726e32841736b0ad5eef8ddd
2015-04-15 11:47:12 +02:00
Stephan Bergmann a1a8654c85 cppu: Use appropriate OUString functions on string constants
Change-Id: Id1d763c83821b7af6c541cb28ff438765026ea4d
2014-12-16 17:27:35 +01:00
Michael Stahl 721366ebe1 cppu: clean up public headers with include-what-you-use
Unfortunately iwyu gets quite confused by the weird cyclic dependencies
between various foo.h/foo.hxx and cppumaker generated headers, so it's
not obvious if any improvement here is realistic...

Change-Id: I0bc66f98b146712e28cabc18d56c11c08418c721
2014-11-18 18:51:48 +01:00
Stephan Bergmann 70cc2b191b First batch of adding SAL_OVERRRIDE to overriding function declarations
...mostly done with a rewriting Clang plugin, with just some manual tweaking
necessary to fix poor macro usage.

Change-Id: I71fa20213e86be10de332ece0aa273239df7b61a
2014-03-26 16:39:26 +01:00
Timothy Markle 995073b08e fdo#43157 - Clean up OSL_ASSERT
Changed OSL_ASSERT to SAL_WARN_IF

Change-Id: I6f81a265aefe769e1449b1f10c796bf3aa1d0f1c
2014-02-05 12:39:03 +00:00
Stephan Bergmann a0008fd7c3 Remove needless SAL_DLLPRIVATE annotations
Change-Id: Iafaf65e5b25f5d9e00e1dc73db280f6605ad1de5
2014-02-03 16:05:09 +01:00
Stephan Bergmann 81cb6a7fbc [API CHANGE] cppu::Enterable::v_isValid returns bool
While strictly speaking an incompatible change, it is extremely unlikely that
external code uses cppu::Enterable at all; this should always have been a
private URE implementation detail.

Change-Id: I2c3fe754fe6268b18ca03532229f3403736f6f6e
2014-01-10 17:11:43 +01:00
Stephan Bergmann 19277d02fb osl_getThreadIdentifier(0) -> osl::Thread::getCurrentIdentifier()
Change-Id: Ida9785c4b9fda0459769957734952e69d7a9de44
2013-08-21 14:19:10 +02:00
Thomas Arnhold 8b27d78b4a automated removal of RTL_CONSTASCII_USTRINGPARAM for quoted OUStrings
Done with a perl regex:

s/OUString\s*\(\s*RTL_CONSTASCII_USTRINGPARAM\s*\((\s*"[^")]*?"\s*)\)\s*\)/OUString\($1\)/gms

Change-Id: Idf28320817cdcbea6d0f7ec06a9bf51bd2c3b3ec
Reviewed-on: https://gerrit.libreoffice.org/2832
Reviewed-by: Thomas Arnhold <thomas@arnhold.org>
Tested-by: Thomas Arnhold <thomas@arnhold.org>
2013-03-19 09:00:26 +00:00
Julien Nabet 8c3c491d4f Some cppcheck cleaning
Change-Id: Iac1c26d031e8196ef93cb403dc60f07e0eef6380
2012-12-27 22:58:07 +01:00
Michael Meeks c3a6a57fc2 re-base on ALv2 code. 2012-06-13 14:18:29 +01:00
Matúš Kukan 051fdda153 cppu: convert to gbuild
Because of unit tests is here custom target where are idl files
processed.
2011-12-19 10:14:51 +01:00
Tor Lillqvist 7904a8cc56 I don't see NO_BSYMBOLIC being used anywhere 2011-12-11 02:57:59 +02:00
Norbert Thiebaud 24b4c075d5 remove include of pch header in cppu 2011-11-27 13:02:56 -06:00
Sebastian Spaeth a715e1b3d0 Add vim/emacs modelines to all source files
Fixes #fdo30794
Based on bin/add-modelines script (originally posted in mail
1286706307.1871.1399280959@webmail.messagingengine.com)

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2010-10-14 17:04:31 +02:00
Jens-Heiner Rechtien 7c80db2eb3 changefileheader2: #i109125#: change source file copyright notice from Sun Microsystems to Oracle; remove CVS style keywords (RCSfile, Revision) 2010-02-12 15:01:35 +01:00
Rüdiger Timm 822532a7ef INTEGRATION: CWS changefileheader (1.3.36); FILE MERGED
2008/03/31 07:23:19 rt 1.3.36.1: #i87441# Change license header to LPGL v3.
2008-04-11 09:31:43 +00:00
Rüdiger Timm f79ce3fe26 INTEGRATION: CWS changefileheader (1.4.34); FILE MERGED
2008/03/31 07:23:19 rt 1.4.34.1: #i87441# Change license header to LPGL v3.
2008-04-11 09:30:52 +00:00
Oliver Bolte fbd986475b INTEGRATION: CWS unomacli64 (1.3.2); FILE MERGED
2007/06/05 15:04:34 kr 1.3.2.1: #i77422# Use va_list * instead of plain type
2007-07-18 11:20:58 +00:00
Jens-Heiner Rechtien f2ac6e57b5 INTEGRATION: CWS ause081 (1.2.8); FILE MERGED
2007/06/22 12:25:50 hjs 1.2.8.1: #i78393# remove now obsolete setting to avoid description
2007-06-26 16:19:14 +00:00
Kurt Zenker 49fd1e6e51 #i10000# add declaration for precompiled header 2007-05-14 08:32:30 +00:00
Kurt Zenker 57417685d2 INTEGRATION: CWS bunoexttm (1.1.2.1.2); FILE ADDED
2007/01/25 13:15:23 kr 1.1.2.1.2.1: fixed: license
2007-05-09 12:36:37 +00:00
Kurt Zenker 24858ba01b INTEGRATION: CWS bunoexttm (1.1.2.1.2); FILE ADDED
2007/02/28 16:54:11 kr 1.1.2.1.2.2: adapted: to simplified purpenvhelper
2007/01/25 13:15:13 kr 1.1.2.1.2.1: fixed: license, warning
2007-05-09 12:36:26 +00:00