Commit Graph

16 Commits

Author SHA1 Message Date
Stephan Bergmann
61dc9b6aab Make loplugin:stringcostant find some misuses of OUStringBuffer::append
...like the one manually found at 06845c14a1 "This
should have become a UTF-16 string literal".  (No further misuses were found
across the code base.)

Change-Id: I0b604bdaaa38bd9248440ff7bd7bf0545fc6426a
Reviewed-on: https://gerrit.libreoffice.org/81250
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-21 20:05:49 +02:00
Stephan Bergmann
6b962889b2 Improved loplugin:stringconstant (now that GCC 7 supports it)
Change-Id: I8f83c1941b8f39b261005939f4dcf3577ae9fc6f
Reviewed-on: https://gerrit.libreoffice.org/76702
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-07-31 16:29:45 +02:00
Noel Grandin
e02b9ccf58 revert part of "improve loplugin:stringconstant"
Revert part of
    commit dd8d5e5795
    Date:   Mon Apr 29 11:18:21 2019 +0200
    improve loplugin:stringconstant

sberg's original gerrit comment:
but there can also be other problematic overloads for parameters like
`void const *` or `std::string_view`.  I'm not sure this change is worth
the potential false positives.

and continuing IRC discussion:
<noelgrandin> I'll revert the compilerplugins/ part
<sberg> noelgrandin, my main concern is that /if/ somebody eventually
runs into such an overload situation, it's really hard to get the
warnings/errors fixed for those people, short of going into the plugin
itself

Change-Id: I4916ce8943c4319d7ef9084e22d6a0eeb430b15c
2019-04-30 09:28:40 +02:00
Noel Grandin
dd8d5e5795 improve loplugin:stringconstant
to find more places we can elide the OUString() constructor at call
sites

Change-Id: Ie09f3c61f2c4b4959c97dc98ebcbaf7c51d5d713
Reviewed-on: https://gerrit.libreoffice.org/71514
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-04-30 08:43:51 +02:00
Noel Grandin
933660e591 loplugin:stringconstant look for unnecessary OString constructor use
and tweak the methods in check.hxx to make them more flexible when
called with
   dc.Class(xxx ? "foo" : "bar")

Change-Id: I881fe628f22121ced4d8849715d6b1c92b092da1
Reviewed-on: https://gerrit.libreoffice.org/64207
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-11-29 09:57:15 +01:00
Stephan Bergmann
c89a4996b8 Adapt to C++2a char_t
u8 literals incompatibly change their type (as implemented by recent Clang
trunk)

Change-Id: Ia4f7b91f5d86656a056303d2754981ab2093a739
Reviewed-on: https://gerrit.libreoffice.org/63494
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-11-17 17:17:26 +01:00
Stephan Bergmann
c9f3277ea7 loplugin:stringconstant: Simplify construction of non-ASCII OUString
Change-Id: If80c53978106789824e6154db396baeecc1969dd
Reviewed-on: https://gerrit.libreoffice.org/42876
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-28 08:27:11 +02:00
Stephan Bergmann
f79123a823 loplugin:stringconstant: Also handle u8"..." strings
(just in case)

Change-Id: Id8ce7436bacba874d9bc04915e42622e3cfca67a
2017-09-27 07:53:00 +02:00
Stephan Bergmann
5c54b6523f loplugin:stringconstant: warn about explicit length mismatch
(just in case)

Change-Id: I9eaf6e920fc7fc3ebc8c705df1cdf34b325db74a
Reviewed-on: https://gerrit.libreoffice.org/42614
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-22 13:45:07 +02:00
Stephan Bergmann
7b45044fd1 Also handle OUString with non-RTL_TEXTENCODING_ASCII_US encoding
(just in case)

Change-Id: I7ba2967c1cef81a3f6604077d876c8b993f7f16a
Reviewed-on: https://gerrit.libreoffice.org/42609
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-22 08:19:55 +02:00
Noel Grandin
45c06838e9 only unit-test one loplugin at a time
tell the plugin code when we are unit-testing it, so we can suppress all
the warnings except for the plugin we are currently testing

Change-Id: I240c8e37eba90c219e53c29531a3a43bc841a1c8
2017-06-19 11:34:15 +02:00
Noel Grandin
dce867e8c4 loplugin:stringconstant handle calls to constructors with one arg
Change-Id: Ide9148a908bef46ba14640dfa6f556beaf6e3f60
Reviewed-on: https://gerrit.libreoffice.org/33772
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-02-01 07:57:16 +00:00
Noel Grandin
1c3e84d819 teach lolugin:stringconstant about calling constructors
so we can remove unnecessary calls to the OUString(literal) constructor
when calling constructors like this:
   Foo(OUString("xxx"), 1)

Change-Id: I1de60ef561437c86b27dc9cb095a5deb2e103b36
Reviewed-on: https://gerrit.libreoffice.org/33698
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-31 08:56:20 +00:00
Stephan Bergmann
aee1d799be Make test work with older Clang
For some reason, e.g. Clang 3.8.1 doesn't evaluate std::strlen here (though it
apparently does in other places in this file).

Change-Id: Ib2b7dcc1d7b6ae47ef285bd2edb65e399dc11b79
Reviewed-on: https://gerrit.libreoffice.org/33547
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
2017-01-26 08:36:51 +00:00
Tor Lillqvist
907a9ce8b8 Bypass some lines that cause problems with Clang 3.8.1 at least
Change-Id: I05202ee6b2f083e8aacf0a2a8f8d7b8b361a5df8
2017-01-25 11:56:54 +02:00
Stephan Bergmann
236f69e710 Minor loplugin:stringconstant improvements
Change-Id: I0b39526c0f0854ddbb29e77ece303cf2bdd842c4
2017-01-25 07:58:10 +01:00