summaryrefslogtreecommitdiff
path: root/codemaker
AgeCommit message (Collapse)AuthorFilesLines
2018-10-17clang-tidy readability-redundant-smartptr-getNoel Grandin3-25/+16
redundant get() call on smart pointer Change-Id: Icb5a03bbc15e79a30d3d135a507d22914d15c2bd Reviewed-on: https://gerrit.libreoffice.org/61837 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-17New loplugin:externalStephan Bergmann1-1/+1
...warning about (for now only) functions and variables with external linkage that likely don't need it. The problems with moving entities into unnamed namespacs and breaking ADL (as alluded to in comments in compilerplugins/clang/external.cxx) are illustrated by the fact that while struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } returns 1, both moving just the struct S2 into an nunnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { namespace { struct S2: S1 { int f() { return 1; } }; } int f(S2 s) { return s.f(); } } int main() { return f(N::S2()); } as well as moving just the function f overload into an unnamed namespace, struct S1 { int f() { return 0; } }; int f(S1 s) { return s.f(); } namespace N { struct S2: S1 { int f() { return 1; } }; namespace { int f(S2 s) { return s.f(); } } } int main() { return f(N::S2()); } would each change the program to return 0 instead. Change-Id: I4d09f7ac5e8f9bcd6e6bde4712608444b642265c Reviewed-on: https://gerrit.libreoffice.org/60539 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-11Revert "clang bugprone-unused-return-value"Noel Grandin1-2/+4
comment from sberg: aren't these changes broken in general, when the called function may throw an exception before it takes ownership of the passed-in pointer? So revert, except for (a) PlainTextFilterDetect::detect, which was definitely a leak (b) SwCursor::FindAll, where unique_ptr was being unnecessarily used This reverts commit 7764ae70b04058a64a3999529e98d1115ba59d1c. Change-Id: I555e651b44e245b031729013d2ce88d26e8a357e Reviewed-on: https://gerrit.libreoffice.org/60301 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-09-10Generate UNO exception classes as SAL_WARN_UNUSEDStephan Bergmann1-1/+1
...to find more places like 09978dd1fc18ce1ae707bc9e4ea1d2745ff07b61 "clang-tidy bugprone-unused-return-value" Change-Id: Ibe8b6790c701dc8270295dd1e2cbc9023b5ce018 Reviewed-on: https://gerrit.libreoffice.org/60234 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-09-08clang bugprone-unused-return-valueNoel Grandin1-4/+2
most of these changes just make the change of ownership when using std::unique_ptr clearer, but there is one definite leak fix in PlainTextFilterDetect::detect Change-Id: I8282a68007222a4fee84004f394bde0cca8569e9 Reviewed-on: https://gerrit.libreoffice.org/60159 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-08-08loplugin:unusedfieldsNoel Grandin2-8/+1
Change-Id: I9ae44279f1cce06bd6868005fbb878ba4894aed7 Reviewed-on: https://gerrit.libreoffice.org/58706 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-07-27codemaker: avoid -Werror=deprecated-copy (GCC trunk towards GCC 9)Stephan Bergmann1-0/+6
...by explicitly defaulting the copy/move functions (and, where needed in turn, also a default ctor) for classes that have a user-declared dtor that does nothing other than an implicitly-defined one would do, but needs to be user- declared because it is virtual and potentially serves as a key function to emit the vtable, or is non-public, etc. (For LIBO_INTERNAL_ONLY, in cppumaker- genered code.) Change-Id: Ia13d945c10600f5793a3247f85a464170ede483d Reviewed-on: https://gerrit.libreoffice.org/58116 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-25Add missing method hasUnsignedLongDependency()Muhammet Kara2-1/+4
m_unsignedLongDependency was already set but never used. Behavior of Includes::Includes ctor is now in consistency with the related switch cases in Includes::add (see: m_includeSalTypesH) Change-Id: I4cca1bab014ac280b73b7532aadfd5ff2b0b9894 Reviewed-on: https://gerrit.libreoffice.org/57792 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Jenkins
2018-07-09Add missing sal/log.hxx headersGabor Kelemen1-0/+1
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. This is a continuation of commit 6ff2d84ade299cb3d14d4110e4cf1a4b8070c030 to be able to remove those unneeded includes. This commit adds missing headers to every file found by: grep -FwL sal/log.hxx $(git grep -Elw 'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF|SAL_DETAIL_LOG_STREAM|SAL_WHERE|SAL_STREAM|SAL_DEBUG') to directories from a* to configmgr Change-Id: I6ea1a7f992b1f835f5bac7a725e1135abee3f85a Reviewed-on: https://gerrit.libreoffice.org/57170 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2018-06-29tdf#96099 Remove trivial std::map typedefs in [cd]*Arkadiy Illarionov1-31/+29
Change-Id: I043d265d3d73a3e16f05d5ca7e29a09341651d82 Reviewed-on: https://gerrit.libreoffice.org/56639 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-06-06tdf#117918 codemaker: avoid including ourselves in .hpp filesMiklos Vajna1-1/+4
It's pointless, include guards will make sure it's a NOP, but it confuses tools like IWYU. Change-Id: Ic1f56ef267954cdf8bf3cb4f4a5e841d5e4bb82a Reviewed-on: https://gerrit.libreoffice.org/55354 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-26coverity#1019311 silence Unchecked return valueCaolán McNamara1-1/+1
Change-Id: Ife2bfed0eecff5fe247d0fef6ee7d77626d9f0be
2018-01-19loplugin:unusedmethods also check for functions returning boolNoel Grandin1-4/+4
we were previously excluding them Change-Id: I48a68799b0de60b4995fae541eb363e043d4dd11 Reviewed-on: https://gerrit.libreoffice.org/48167 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-19SAL_W32 is just an alias for _WIN32Stephan Bergmann2-5/+5
...so consistently use the latter instead of the former Change-Id: I144d5e7c472632f93b2258461510346bc85892d9 Reviewed-on: https://gerrit.libreoffice.org/48135 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-01-12More loplugin:cstylecast: codemakerStephan Bergmann1-1/+1
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: If1c6b7a83f6f64fbcbced4f036c0f859a1408d0c
2017-12-29Fix typosAndrea Gelmini1-1/+1
Change-Id: I0e56430afa65b6b5826d56212ac501c0244fce9b Reviewed-on: https://gerrit.libreoffice.org/47145 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2017-11-27loplugin:unnecessaryparen: Warn about parentheses around literalsStephan Bergmann3-18/+18
...that are not composed of multiple tokens, like ("foo" "bar"). Also don't yet warn about Boolean literals, which are sometimes wrapped in parentheses to silence unreachable-code warnings. To avoid multiple warnings about code like f((0)) switch to generally using a set of ParenExpr to keep track of which occurrences have already been handled. Change-Id: I036a25a92836ec6ab6c56ea848f71bc6d63822bc Reviewed-on: https://gerrit.libreoffice.org/45317 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-11-26Replace most lists by vectors in codemakerJulien Nabet3-10/+8
Change-Id: Id867b497514d2d795504ae5c9e7d0ad356524ad5 Reviewed-on: https://gerrit.libreoffice.org/45274 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2017-11-01loplugin:constantparam in c*Noel Grandin1-7/+1
Change-Id: I10c7b62e6458062324367b94b207f776af79f598 Reviewed-on: https://gerrit.libreoffice.org/44129 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-23loplugin:includeform: codemakerStephan Bergmann26-142/+142
Change-Id: If0c6726c4e096f50e2e16f2a4f7e5821457ac368
2017-10-20loplugin:constmethod in codemaker,registry,storeNoel Grandin6-23/+23
Change-Id: Ie75875974f054ff79bd64b1c261e79e2b78eb7fc Reviewed-on: https://gerrit.libreoffice.org/43540 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-04add << operator for css::uno::ExceptionNoel Grandin1-0/+31
Change-Id: Ia23dafd07133779144965682df3b7125a3214235 Reviewed-on: https://gerrit.libreoffice.org/43046 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
2017-09-11clang-tidy modernize-use-emplace in c*Noel Grandin3-14/+11
Change-Id: I419d1f67ba301050d05981db2a3d6178878684a9 Reviewed-on: https://gerrit.libreoffice.org/42110 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-14new loplugin:droplongNoel Grandin2-2/+2
The types 'long' and 'unsigned long' are different sizes on different platforms, making them wholy unsuitable for portable code. And when I mean different sizes, I mean 64bit Linux and 64bit Windows have different bit sizes. Change-Id: Id4d8cd709bf71a3f85ed6515fae2b0a21ae8c25d Reviewed-on: https://gerrit.libreoffice.org/41130 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-11convert std::map::insert to std::map::emplace IINoel Grandin5-43/+20
Change-Id: Ief8bd59c903625ba65b75114b7b52c3b7ecbd331 Reviewed-on: https://gerrit.libreoffice.org/41019 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-31loplugin:oncevarNoel Grandin1-6/+3
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-18loplugin:constparams codemaker,idl,idlcNoel Grandin1-2/+2
Change-Id: Ic72b7525cfbfbd3c5afb12fe9ea814176e6c8c9d Reviewed-on: https://gerrit.libreoffice.org/40126 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-10teach unnecessaryparen loplugin about identifiersNoel Grandin2-10/+6
Change-Id: I5710b51e53779c222cec0bf08cd34bda330fec4b Reviewed-on: https://gerrit.libreoffice.org/39737 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-07loplugin:unnecessaryparen handle parens inside call exprNoel Grandin2-2/+2
stick to single-arg function calls, sometimes parens in multi-arg calls might be there for clarity Change-Id: Ib80190c571ce65b5d219a88056687042de749e74 Reviewed-on: https://gerrit.libreoffice.org/39676 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-27android, fix codemaker buildbreakerjan Iversen1-2/+2
Interesting android does not use --enable-java Change-Id: If834485d5a1cfcd2c6ddcd6f30dcbb61aa838dae
2017-06-27iOS, remove java and cppunittestjan Iversen1-4/+2
Low level functions will not be tested Change-Id: I72fa44ea713639db97e39801a3975d6731a684c2
2017-06-24iOS workaround to avoid mkdir problem.jan Iversen1-2/+2
this patch solves: make -rs -f /Volumes/LIBREOFFICE/ios/core/Makefile.gbuild all touch: /Volumes/LIBREOFFICE/ios/work/workdir/Executable/cppumaker.run: No such file or directory make[1]: *** [/Volumes/LIBREOFFICE/ios/work/workdir/Executable/cppumaker.run] Error 1 Seems the touch <foo>.run does not have a mkdir -p. Change-Id: I3a02f5fd04cc3e2b96afb919542ef708849daf10
2017-06-20loplugin:oncevar in codemaker..connectivityNoel Grandin1-1/+1
Change-Id: Ia479d9d3d459a699dfc5c1148d01c35e8bc973bd Reviewed-on: https://gerrit.libreoffice.org/39000 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-04Remove usage of OString("")Arnaud Versini2-9/+9
Change-Id: I0874f81c35573048d05b3842806daa0db67f7887 Reviewed-on: https://gerrit.libreoffice.org/38386 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-28remove unnecessary use of OString::getStrNoel Grandin1-4/+4
Change-Id: I0490efedf459190521f4339854b3394d57765fdb Reviewed-on: https://gerrit.libreoffice.org/38058 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-09cleanup osl/diagnose.h includesJochen Nitschke4-4/+0
with command > git grep -l osl/diagnose.h *.cxx | xargs grep -L -w 'OSL_\w*' | xargs sed -i '/#include *\(<\|\"\)osl\/diagnose.h\(>\|\"\).*/d' headers need more work Change-Id: I906519ebbd47a04703b4fa5943b2f7abea7a97ab Reviewed-on: https://gerrit.libreoffice.org/37350 Tested-by: Jochen Nitschke <j.nitschke+logerrit@ok.de> Reviewed-by: Michael Stahl <mstahl@redhat.com>
2017-04-30cppcheck: duplicateBreakJulien Nabet1-1/+0
Change-Id: Ia33dddfba35da3b495aae4edabe80b1a560674cd Reviewed-on: https://gerrit.libreoffice.org/37111 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2017-04-25tools: svstream.hxx needs only errcode.hxx & not errinf.hxxChris Sherlock1-0/+1
Change-Id: Ia28e35ae5af4f601e9a586a3deffbcd61702b0ca Reviewed-on: https://gerrit.libreoffice.org/36896 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2017-04-04More commit resurrectionStephan Bergmann1-2/+2
(why do people do such silly reformatting?) Change-Id: Ie9d45d7dfccb000f53fa5e8dc456f1e7c033af18
2017-04-04Move comment back to where it makes senseStephan Bergmann1-3/+2
It appertains to the preceding code, not the following, so it was indented for a subtle reason. Change-Id: I032033f04a1ca3a91024c11de74ef96527562b41
2017-04-04make UNO enums scoped for internal LO codeNoel Grandin2-477/+482
this modifies codemaker so that, for an UNO enum, we generate code that effectively looks like: #ifdef LIBO_INTERNAL_ONLY && HAVE_CX11_CONSTEXPR enum class XXX { ONE = 1 }; constexpr auto ONE = XXX_ONE; #else ...the old normal way.. #endif which means that for LO internal code, the enums are scoped. The "constexpr auto" trick acts like an alias so we don't have to use scoped naming everywhere. Change-Id: I3054ecb230e8666ce98b4a9cb87b384df5f64fb4 Reviewed-on: https://gerrit.libreoffice.org/34546 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-25loplugin:loopvartoosmallStephan Bergmann2-2/+2
Change-Id: Ifd83cb180072304511ad8eb031dcf2a867e97e62
2017-02-17remove unused KeywordsOnly from IdentifierTranslationModeNoel Grandin1-3/+2
Change-Id: I7262e618a14fa9e025d269b560da752e3200309d
2017-02-10Remove MinGW supportStephan Bergmann1-1/+1
In OOo times, there'd originally been efforts to allow building on Windows with MinGW. Later, in LO times, this has been shifted to an attempt of cross- compiling for Windows on Linux. That attempt can be considered abandoned, and the relevant code rotting. Due to this heritage, there are now three kinds of MinGW-specific code in LO: * Code from the original OOo native Windows effort that is no longer relevant for the LO cross-compilation effort, but has never been removed properly. * Code from the original OOo native Windows effort that is re-purposed for the LO cross-compilation effort. * Code that has been added specifially for the LO cross-compilation effort. All three kinds of code are removed. (An unrelated, remaining use of MinGW is for --enable-build-unowinreg, utilizing --with-mingw-cross-compiler, MINGWCXX, and MINGWSTRIP.) Change-Id: I49daad8669b4cbe49fa923050c4a4a6ff7dda568 Reviewed-on: https://gerrit.libreoffice.org/34127 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-02-08Remove newly-unnecessary #includes from cppumaker-generated filesStephan Bergmann5-70/+72
...after e57ca02849c3d87142ff5ff9099a212e72b8139c "Remove dynamic exception specifications" dropped uses of UNO exception types from those generated files. This needed first adapting client code that implicitly depended on those #includes in the generated files it included ("Add missing #includes": 6dce9c6757823b9e89863716ae70ff4e8ddd4e60, a34d9150b419ee7471b96599d877ff1091d6b567, fed3783e77e00635e50622e7229b06c9e25451f1). Change-Id: Ia1defda2d586b69092f53feef3644875192cbea4 Reviewed-on: https://gerrit.libreoffice.org/34014 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-02-01loplugin:useuniqueptr extend to check local varsNoel Grandin3-12/+9
just the simple and obvious case for now, of a local var being allocated and deleted inside a single local block, and the delete happening at the end of the block Change-Id: I3a7a094da543debdcd2374737c2ecff91d644625 Reviewed-on: https://gerrit.libreoffice.org/33749 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-26Remove dynamic exception specificationsStephan Bergmann5-7/+2
...(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-24loplugin: unnecessary destructor: basctl..codemakerNoel Grandin2-4/+0
Change-Id: Iadcfa9bc4fe9efb8d24d6d6afaf2b9b3def0bc3c Reviewed-on: https://gerrit.libreoffice.org/33452 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-20Remove dynamic exception specifications from cppumaker-generated codeStephan Bergmann1-51/+5
See the mail thread starting at <https://lists.freedesktop.org/archives/libreoffice/2017-January/076665.html> "Dynamic Exception Specifications" for details. This leaves some #include <...Exception.hpp> in the generated code that are no longer needed by the generated files themselves. But C++ implementation classes still use dynamic exception specifications and usually don't repeat the relevant #includes, so postpone removal until the implementation classes are cleaned up in a later step. Change-Id: Ifb7df3bb12f7f10c655b85cb0626afe5050479a4
2017-01-11loplugin:stringconstant: handle OStringBuffer::appendStephan Bergmann1-1/+1
Change-Id: I283da52c0ee2b63c19e31e9a61ab24997c037a6a