41 Commits
Author SHA1 Message Date
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 0d36b32755 loplugin:sequentialassign
Change-Id: I56a9bf698b60bd278c71cc632aacef2bd2f4c13f
Reviewed-on: https://gerrit.libreoffice.org/76501
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-07-29 08:53:23 +02:00
Gabor Kelemen 7bad59533d tdf#42949 Fix IWYU warnings in cppuhelper/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I0eebd82b96d630da0597166cf87d398072607c13
Reviewed-on: https://gerrit.libreoffice.org/67473
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-02-14 13:36:03 +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
Stephan Bergmann 71a6caf49b More loplugin:cstylecast: cppuhelper
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files

Change-Id: I3966d302241a52014aaad41f72924a2095ea6621
2018-01-12 20:26:29 +01:00
Noel Grandin c9253818ec loplugin:oncevar
extend oncevar to any POD type

Change-Id: Ia98ee0a67f183e40fb0c38477760124b2c411dc0
Reviewed-on: https://gerrit.libreoffice.org/40564
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-31 08:25:07 +02:00
Stephan Bergmann e57ca02849 Remove dynamic exception specifications
...(for now, from LIBO_INTERNAL_CODE only).  See the mail thread starting at
<https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html>
"Dynamic Exception Specifications" for details.

Most changes have been done automatically by the rewriting loplugin:dynexcspec
(after enabling the rewriting mode, to be committed shortly).  The way it only
removes exception specs from declarations if it also sees a definition, it
identified some dead declarations-w/o-definitions (that have been removed
manually) and some cases where a definition appeared in multiple include files
(which have also been cleaned up manually).  There's also been cases of macro
paramters (that were used to abstract over exception specs) that have become
unused now (and been removed).

Furthermore, some code needed to be cleaned up manually
(avmedia/source/quicktime/ and connectivity/source/drivers/kab/), as I had no
configurations available that would actually build that code.  Missing @throws
documentation has not been applied in such manual clean-up.

Change-Id: I3408691256c9b0c12bc5332de976743626e13960
Reviewed-on: https://gerrit.libreoffice.org/33574
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-01-26 12:54:43 +00:00
Jochen Nitschke 61b00192cd tdf#88206 replace cppu::WeakImplHelper* in cppuhelper
Change-Id: I3130a3fe28c00bd83cade9667a6e3b3abcb719f7
Reviewed-on: https://gerrit.libreoffice.org/31714
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-12-07 13:25:50 +00: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
Miklos Vajna b3c72c7340 cppuhelper: fix loplugin:cppunitassertequals warnings
Change-Id: Ia7c3de84b8001a30dbe1863be58a9639167cfa11
Reviewed-on: https://gerrit.libreoffice.org/28760
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2016-09-09 08:23:44 +00:00
Stephan Bergmann bf3f840302 loplugin:nullptr (automatic rewrite)
Change-Id: I62a63915dfc0bced2cd8ffe3999cbde5c4d97b0b
2015-11-10 10:31:21 +01: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
Noel Grandin b55166d266 Revert "return and use std::vector from OInterfaceContainerHelper"
This reverts commit e57314f61f.
2015-06-29 10:11:53 +02:00
Noel Grandin e57314f61f return and use std::vector from OInterfaceContainerHelper
since most of the time we don’t need a heavyweight uno::Sequence.
Adds a new method getElementsAsVector().

Change-Id: I9e72bef0c0c723ffd0dd7d4152db5baec6784a7a
Reviewed-on: https://gerrit.libreoffice.org/15747
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2015-06-29 07:25:22 +00:00
Caolán McNamara ad62165065 cppcheck: noExplicitConstructor
Change-Id: Ic33ee6936f40bec4f3a82aea39a180ae6e9a0928
2015-06-09 10:34:00 +01:00
Thomas Arnhold 530899ba18 cppuhelper: fix includes
Change-Id: I0e6bc822d19cf266dea716fe92f2ccd08d87c51f
2014-06-04 21:18:39 +02:00
Stephan Bergmann fa0ffdbeb5 cppu::OMultiTypeInterfaceContainerHelperVar hashImpl param is unused
...since f059134fab "INTEGRATION: CWS
cppuhelpshrink: #i72766# save memory in cppuhelper, using a vector instead of a
hash_map" (but a dummy "void" default is left in place for backwards
compatibility).

Change-Id: I3bb0af8158f34737d41c344464f3cf944e2891ed
2014-04-15 07:46:43 +02: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
Stephan Bergmann 5e21a413c7 cppuhelper: retrofit std::exception into overriding exception specs
Change-Id: I56e32131b7991ee9948ce46765632eb823d463b3
2014-02-26 18:22:20 +01:00
Herbert Dürr 1857688e1f Resolves: #i122208# introduce rtl::CStringHash and rtl::CStringEqual
unify the various c-string compares and hashes.

(cherry picked from commit b7e3470a154538a92f0a21b14e726d75723f4a92)

Conflicts:
	oox/inc/oox/export/shapes.hxx
	oox/source/export/shapes.cxx
	sal/inc/rtl/string.hxx
	sdext/source/minimizer/pppoptimizertoken.cxx
	svx/source/customshapes/EnhancedCustomShapeTypeNames.cxx
	vcl/source/glyphs/gcach_ftyp.cxx
	writerfilter/source/resourcemodel/TagLogger.cxx
	xmloff/source/draw/EnhancedCustomShapeToken.cxx

Change-Id: Ib742744077bfb4d38a462d88b44bdef45601b4ae
2013-05-10 12:36:33 +01:00
Michael Meeks 9d7c1dcbbb re-base on ALv2 code. Includes:
Patches contributed by Ocke Janssen
   converted reportdesign.
   http://svn.apache.org/viewvc?view=revision&revision=1396797
   http://svn.apache.org/viewvc?view=revision&revision=1394326

   Patch contributed by Oliver Rainer-Wittmann
   sw34bf06: #i117783# - Writer's implementation of XPagePrintable -
   apply print settings to new printing routines
   http://svn.apache.org/viewvc?view=revision&revision=1172115
2012-12-06 09:12:57 +00:00
Michael Meeks 328e2263fb targetted re-work of cppunit pieces. 2012-06-27 19:13:11 +01:00
Matúš Kukan b222aa8fff cppuhelper: convert to gbuild
missing subsequent test qa/propertysetmixin/makefile.mk
2012-01-02 15:33:13 +01:00
Michael Stahl c506e1852a fdo#42865: cppu,cppuhelper,testtools: no mapfile
Instead, build with VISIBILITY_HIDDEN.
2011-11-15 20:52:00 +01:00
Stephan Bergmann d996328cd5 sb140: #i113503# mixing system CppUnit and OOo STLport does not work, backed out a6913c9677c2
For LibO, that just means replacing sal/cppunit.h with sal/precppunit.hxx.
2011-09-12 22:47:50 +02:00
Tor Lillqvist e881b51dc6 Use separate unit testers for subsequent and normal tests for iOS 2011-08-01 22:10:28 +03:00
Tor Lillqvist 7ff697bc13 Add statically linked cpphelper unit test for iOS 2011-08-01 18:18:33 +03:00
Tor Lillqvist 8d83508ec3 Bypass qa thingies for now when cross-compiling 2011-06-06 00:33:04 +03:00
Wilhelm Pflueger c372302f99 EasyHacks: Reanimated tests in ure/cppuhelper/qa.
I had to deactivate the test 'test_weak.cxx' in prj/build.lst.
This test failed with 'error 139' - this is typically a segfault
during test execution, oops.
2011-03-15 08:52:39 +01:00
Caolán McNamara 5f66037d6d remove empty TESTSHL2LIB 2011-02-24 20:44:46 +00:00
Julien Nabet c34bae9706 Some cppcheck cleaning 2011-01-12 12:54:06 +00: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
sb 6c036b980c sb118: #i109791# improved CPPUNIT_CFLAGS handling 2010-03-04 22:13:08 +01:00
Rene Engelhard 2e10c0e2fc sb118: add missing CFLAGS+= $(CPPUNIT_CFLAGS) to loads of other makefiles, too 2010-03-04 00:11:19 +01:00
sb 2e24fc7415 sb118: merged in DEV300_m72 2010-02-25 12:46:45 +01: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
sb f4d7dfdfba sb118: #i108776# changed addsym.awk to also export STLport num_put symbols, and simplified it by requiring that first section is labeled UDK_3_0_0; adapted map files accordingly, replacing many individual ones with solenv/src templates 2010-01-29 17:01:54 +01:00
Mathias Bauer 6ea0304b45 #i103496#: split cppunit in a pure external lib and a lib depending on sal -> testshl2 2009-09-14 19:06:55 +02:00
Rüdiger Timm 5f0b906b06 INTEGRATION: CWS changefileheader (1.2.56); FILE MERGED
2008/03/28 15:25:23 rt 1.2.56.1: #i87441# Change license header to LPGL v3.
2008-04-11 10:26:32 +00:00
Rüdiger Timm d7bbb08f0f INTEGRATION: CWS cppuhelpshrink (1.1.2); FILE ADDED
2007/01/22 12:03:55 mmeeks 1.1.2.1: Issue number: i#72766#
Submitted by: mmeeks
Unit tests for Stefan.
2007-01-29 14:45:07 +00:00
Rüdiger Timm 94a3ea6b9c INTEGRATION: CWS cppuhelpshrink (1.1.2); FILE ADDED
2007/01/22 20:33:48 mmeeks 1.1.2.4: Issue number: i#72766#
Submitted by: mmeeks
add yet more container tests for Stefan.
2007/01/22 17:32:38 mmeeks 1.1.2.3: more tests.
2007/01/22 14:33:00 sb 1.1.2.2: #i72766# Made code compile warning-free on unxsoli4.pro.
2007/01/22 12:03:55 mmeeks 1.1.2.1: Issue number: i#72766#
Submitted by: mmeeks
Unit tests for Stefan.
2007-01-29 14:44:48 +00:00