Issue the "instead of O[U]String, pass [u16]string_view" diagnostic also for
operator call arguments. (The "rather than copy, pass subView()" diagnostic is
already part of handleSubExprThatCouldBeView, so no need to repeat it explicitly
for operator call arguments.)
(And many call sites don't even require an explicit [u16]string_view, esp. with
the recent ad48b2b02f "Optimized OString operator
+= overloads". Just some test code in sal/qa/ that explicitly tests the
O[U]String functionality had to be excluded.)
Change-Id: I8d55ba5a7fa16a563f5ffe43d245125c88c793bc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115589
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Say what the O[U]String is constructed from (to make it easier to decide on an
optimal rephrase of the whole surrounding expression), and find more cases that
could use O[U]StringChar.
Change-Id: I64a3851544498c26ca3f46f5df7f593d2fdcb0ee
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115579
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
> Assertion failed: (!isValueDependent() && "Expression evaluator can't be called on a dependent expression."), function isCXX11ConstantExpr, file ~/llvm/llvm-project/clang/lib/AST/ExprConstant.cpp, line 15540.
...as would have hit with a preliminary version of
ad48b2b02f "Optimized OString operator +=
overloads"
Change-Id: I652063b4eebd076973eaa57219df91cd1fbef312
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115462
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
plugin code needed some updating because it was interacting badly with
PCH code in pluginhandler::ignoreLocation
Change-Id: I228f94a4e285747bd1d5b8536010f8617118cafa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115212
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
I was wrong, the Concat framework already optimised appending
numbers by stack-allocating small buffers, so include
them in the plugin
Change-Id: I922edbdde273c89abfe21d51c5d25dc01c97db25
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115037
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
when calling a function, and passing only one arg, but the
function has defaulted args, we were ignoring this case.
Change-Id: I86517f18e30531127664088ddc09ef96dbd8bdf5
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115033
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
An attempt that did not find anything convincing enough to finish it up
and make it permanently active.
So just leave it in /store for now.
Change-Id: I1750e177655a4a510da100f880ba81bf762be277
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114742
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
which can use the more efficient *StringConcat
Also fix a crash in stringview plugin which
started happening while I working on this.
Change-Id: I91a5b9b7707d1594d27d80b73930f5afac8ae608
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114568
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
* Updated README.md contents to fix various issues
* Fixed source links by using [git:], processed by mkdocs scripts
* Added README.md for ios, setup_native, unotest
* Fixed issues with "underline" and "less than" sign
Change-Id: I3e52a1d3372586c390ee6c42a2ef48bbabc81398
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114248
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
to O[U]String from char array literals, we can convert the char literals
to O[U]StringLiteral and avoid a runtime allocation
Change-Id: I15d8dddb2cd428b90740e39f20daf98e0941aa6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114125
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
create vcl/locktoplevels.hxx for the utility to set all
toplevel windows modally locked
Change-Id: I964484d238852e830e1e5c0b86b3bebb3b41a6b3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113889
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
I missed that -building-pch-with-obj is checked by configure (and
used) only if PCHs are used. So remove the error checking and
hope that it gets checked whenever somebody does changes related
to the flag.
Change-Id: Ibdf991169f023dae48dad0dd2929215fb048d57d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113841
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
When using Clang PCHs, we know for certain that the content of a PCH
will be used once by the PCH's dedicated source file. So it is not
necessary to let clang plugin check locations coming from a PCH
every time, but just once when compiling that dedicated source.
For starmath's parse.cxx this reduces compilation time 0.94s->0.4s
(0.1s when not using plugins at all), for sc's document.cxx it is
5.9s->5.0s (4.0s without plugins). For reference, without PCHs
the numbers are (with/without plugins) 2.1s/1.9s for parse.cxx
and 11.2s/10.3s for document.cxx.
Change-Id: Ie39787e65d7951187941dcff4899d053da63cbdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113817
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
...as debuted in Clang with
<778dc0f1d4>
"[c++20] Add CXXRewrittenBinaryOperator to represent a comparison operator that
is rewritten as a call to multiple other operators" towards Clang 10, and would
have caused a false
> xmloff/source/style/XMLRtlGutterPropertyHandler.cxx:40:16: error: parentheses immediately inside assignment [loplugin:unnecessaryparen]
> rValue <<= (it != aRtlModes.end());
> ^~~~~~~~~~~~~~~~~~~~~~~
with --with-latest-c++ and an appropriate libstdc++.
Change-Id: Iede63144dff1e1c833a1da7090b599e792351926
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113744
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Previously, all of the README files have been renamed to README.md
and now, the contents of these files were changed to use Markdown
format. Other than format inconsistency, some README.md files lacked
information about modules, or were out of date. By using LibreOffice
/ OpenOffice wiki and other documentation websites, these files were
updated. Now every README.md file has a title, and some description.
The top-level README.md file is changed to add links to the modules.
The result of processing the Markdown format README.md files can be
seen at: https://docs.libreoffice.org/
Change-Id: Ic3b0c3c064a2498d6a435253b041df010cd7797a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113424
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
...as caused the
assert(!returnTypes_.empty());
in VisitReturnStmt to hit for the return statement in the permutation2D lambda
body (which does not happen to be nested within any other function declaration)
in patch sets 1 and 2 of <https://gerrit.libreoffice.org/c/core/+/113522>
"Compute permutation2D at compile time".
Change-Id: Ic4aa55bef4361e40c2cd6247b5646f7b1ba82e6d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113699
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
While icecream passes preprocessed (via -frewrite-includes) input to the
compiler on stdin, sccache-dist writes it to a file at the same location
as the source file in its sandbox.
So we need a new heuristic to detect that the input has
-frewrite-includes applied; there is not any variable that sccache sets,
users could have SCCACHE_CACHE_SIZE set but only if they use the disk
cache, so check CXX for now.
Also set SCCACHE_EXTRAFILES to include log-areas.dox required by plugin.
Change-Id: I4e00bfb0db7dab28f228fc0e85d753506e2c86b1
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112480
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
Renaming all README files for all top level modules to README.md,
applying no content change at this stage to be able to track history
of the files. These files should be edited to use correct Markdown
syntax later.
Change-Id: I542fa3f3d32072156f16eaad2211a397cc212665
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112977
Tested-by: Jenkins
Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
...since de030cd7a2 "gbuild: Remove MSVC 2013
legacy code", so no longer treat it as such in compilerplugins. (Which caused a
few loplugin:includeform and loplugin:nullptr warnings.)
Change-Id: I99b42e76992e31aff56b417c05738d4d29e3faf9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112575
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
because it wasn't quite there yet - now checks for casts with and
without const, because const doesn't really matter here.
Change-Id: I319025b2095a803fcaad2a7a696d2730b7fd2f81
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112098
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
check that when we return ref-counted objects, we do so using
rtl::Reference, so that the object actually has a non-zero
ref count.
Change-Id: Ib3ffae0d2502f6d117550c82fde5449729c27324
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111487
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
look for places we are dynamic_cast'ing after static_cast'ing,
which means the dynamic_cast is a waste of time.
Change-Id: Ife11bb675020738040646230bbd038278d84f7f2
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111631
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>