Commit Graph
92 Commits
Author SHA1 Message Date
Gabor Kelemen c309a5785d tdf#146619 Run IWYU on basic/
Change-Id: I58883f0223a28f3ea887c37e2a86a3c31ff88546
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/188749
Tested-by: Jenkins
Reviewed-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de>
2025-08-18 20:19:07 +02:00
Arnaud VERSINI 9fddd34834 basic : use more OUString literals in basic comp
Change-Id: Ib67bee7e4ba85602be266bb7acc23c52251548b4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177611
Tested-by: Jenkins
Reviewed-by: Arnaud Versini <arnaud.versini@pm.me>
2025-02-26 07:58:16 +01:00
Noel Grandin 7d6e751faa loplugin:ostr basic
Change-Id: Ie5fc4676bd1cab2c0417b479bf08dda00936469a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167191
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-05-06 13:56:49 +02:00
Noel Grandin bc2101646b loplugin:stringviewparam improvements
improve the check by checking for methods that exclude
using string_view, rather than checking for methods that
__can__ use string_view, which leads to exposing
some holes in our o3tl/string_view.hxx coverage.

Change-Id: Ic9dd60441c671f502692f9cd2a1bb67301c4b960
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150277
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-04-14 07:54:28 +02:00
Pragat Pandya 6abc09926c tdf#147021 Use std::size() instead of SAL_N_ELEMENTS() macro
Change-Id: I54257e87da0cd66da59d820c7960c3e4b020fda3
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134027
Reviewed-by: Bartosz Kosiorek <gang65@poczta.onet.pl>
Tested-by: Jenkins
2022-05-09 20:42:03 +02:00
Noel Grandin 4dc4065904 rtl::Static -> thread-safe static local
Change-Id: I9f8fe250813f4f376dc46c6f3d7e25e90fdbb50e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120566
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-17 22:40:40 +02:00
Stephan Bergmann d902e04baf Upcoming improved loplugin:staticanonymous -> redundantstatic: basic
Change-Id: I1046ee1ea28e19afa51b0e20ee573105ced77535
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97522
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-06-30 19:05:48 +02:00
Noel Grandin 14471a6942 loplugin:buriedassign in b*
Change-Id: Ic20f46105a30b54bc5a991b4070e6c8edb15376e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92189
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-04-14 16:17:55 +02: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
Gabor Kelemen 7ddedd2594 tdf#42949 Fix IWYU warnings in basic/
Found with bin/find-unneeded-includes
Only removal proposals are dealt with here.

Change-Id: I325149be2ea7697b5b4a2ce4a662edd2f8be6e50
Reviewed-on: https://gerrit.libreoffice.org/82312
Tested-by: Jenkins
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2019-11-12 09:20:55 +01:00
Mike Kaganski 1b2f97a5bd These should be sal_Int32
Change-Id: If00ef09bec9b66cd4b7725398b2cdb3f49a3fe90
Reviewed-on: https://gerrit.libreoffice.org/81274
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-10-22 06:49:47 +02:00
Stephan Bergmann e6ab9174b0 basic: avoid -Werror=deprecated-copy (GCC trunk towards GCC 9)
...by removing explicitly user-provided functions that do the same as their
implicitly-defined counterparts, but may prevent implicitly declared copy
functions from being defined as non-deleted in the future.  (Even if a dtor was
declared non-inline in an include file, the apparently-used implicitly-defined
copy functions are already inline, so why bother with a non-inline dtor.)

Change-Id: I8a31ab0c806cb0f3c226d217f152a205aff6c07f
Reviewed-on: https://gerrit.libreoffice.org/58065
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2018-07-26 16:27:20 +02:00
Noel Grandin d254f8a926 loplugin:singlevalfields improve unaryoperator
when we see a unaryoperator, unless it's one of a small set, we can
know (mostly) that the field will not be written.
there is still a small risk of false+ with code taking references
via conditional expressions.

Change-Id: I96fa808067576a50e5eaf425338e225b4e0bdd4e
Reviewed-on: https://gerrit.libreoffice.org/53263
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-04-23 08:16:18 +02:00
Stephan Bergmann 3a40d3de89 More loplugin:cstylecast: basic
Change-Id: I0bb219632da384ab047a2b1fc3f2b041dacaf2cb
2018-01-15 09:07:14 +01:00
Mike Kaganski 4e144751f1 loplugin:unusedindex
Change-Id: I256a807dd2a4c81126b5a76f3d472e31b8224146
Reviewed-on: https://gerrit.libreoffice.org/46652
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-12-18 07:36:32 +01:00
Mike Kaganski daf7c3e732 basic: consistently use "" and <> in include directives
Change-Id: I147c0e9b9b1e09af593f54799e45e1348cd40716
Reviewed-on: https://gerrit.libreoffice.org/43298
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-10-10 07:43:46 +02:00
Noel Grandin c8ff3059a7 move all the basic errcodes to one file
Change-Id: Ic3353c80ac9fdbd17f17503b1c973c9a7cef0c7f
Reviewed-on: https://gerrit.libreoffice.org/41617
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-08-29 11:50:43 +02:00
Noel Grandin 3059ede409 drop SbError typedef
in favour of ErrCode.
Part of a larger patch to convert ErrCode to strong_int

Change-Id: Ia846bfc93c58c85c6a6cec79e9d19b9ecbd1c05f
Reviewed-on: https://gerrit.libreoffice.org/38783
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-15 08:25:22 +02:00
Takeshi Abe 7948e84091 basic: Stop detecting the number of tokens at runtime
which removes static variables and improves SbiTokenizer's
thread-safety.

Change-Id: Ic3eb52adfa85691af65f214c1b90c43c03f9a3dd
Reviewed-on: https://gerrit.libreoffice.org/37867
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
2017-05-24 04:15:32 +02:00
Takeshi Abe 9425245a87 basic: Remove strange ifdef-guard for SHARED
Was there any platform predefining it?

Change-Id: I4c155c00272b426c0d2b1b1ec0184cc223f9e38c
Reviewed-on: https://gerrit.libreoffice.org/37461
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
2017-05-12 03:57:08 +02:00
Takeshi Abe e5a4858e1a basic: Compare with keywords without creating temporary strings
Change-Id: Ie284bbe4759a31c48cde415a4e673efd4c789741
Reviewed-on: https://gerrit.libreoffice.org/37252
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
2017-05-10 05:49:19 +02:00
Arnaud Versini f747797772 BASIC: Call OUString() instead of OUString("");
Change-Id: Ie68d48a5dd0fd3593054e853f179db9a4be03b24
Reviewed-on: https://gerrit.libreoffice.org/36831
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2017-04-24 15:01:32 +02:00
Arnaud Versini 4a27349879 BASIC: Make TokenLabelInfo a singleton, never modified and simplify it.
Change-Id: Ie233aebc39f5b181087a64d3cf2053ef4ecbab91
Reviewed-on: https://gerrit.libreoffice.org/36829
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-23 21:26:47 +02:00
Justin Luth 51eb2ad7a0 VBA: accept the PtrSafe keyword
64bit MSOffice VBA7 requires the PtrSafe Declare attribute
 #If Win64 Then
   Declare PtrSafe Function aht_apiGetOpenFileName Lib "comdlg32.dll"
 #Else
   Declare Function aht_apiGetOpenFileName Lib "comdlg32.dll"
 #End If

Accept this new keyword to enable compatibility with macros adjusted
to work in a 64bit MSOffice environment.

Change-Id: I9e64cb5339075cdda2ec91e8128fd0a35d458432
Reviewed-on: https://gerrit.libreoffice.org/34519
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Justin Luth <justin_luth@sil.org>
2017-02-27 04:25:45 +00:00
Stephan Bergmann 71511385dd Just pass in OUString directly
Change-Id: Idf7d63672e8b330499e53c1395dedb92d25bb76a
2017-01-27 17:28:27 +01:00
Noel Grandin ad694ef65a new loplugin: useuniqueptr: basic
Change-Id: I5a9806e8dd79431f14d6861c8f4d65f828398f07
Reviewed-on: https://gerrit.libreoffice.org/33145
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-16 07:30:09 +00:00
Stephan Bergmann 45adae8fd6 Avoid reserved identifiers
Change-Id: Ibba1a36d4f3744fa68f7e9d0076c997e076262cb
2016-04-06 08:31:46 +02:00
Damjan Jovanovic d5443023ef #i117960# Basic: Line Input doesn't work in single-line If
i92642 added the ability to use certain keywords as variable names (eg. name = 1, line = "hi"),
but also caused a regression where "Line Input" is broken in single-line If statements.
This patch fixes that by allowing Then and Else to also be the start-of-line tokens expected to
immediately preceed the "Line" token in order for that "Line" token to be recognized a keyword instead
of a variable name. Also added FVT spreadsheet tests for "Line" as both a variable name and as "Line Input".

Patch by: me

(cherry picked from commit f8a51d0f5a645704bc2bdc939474ac931d55559c)
2015-11-25 20:46:26 +00:00
Stephan Bergmann 5e02785ff1 clang-analyzer-deadcode.DeadStores
Change-Id: Ib26cbbc839040c49288606f588cb7400d7e40b83
2015-10-06 15:31:15 +02:00
Noel Grandin b1c25a0d8f inline "old" SbERR constants
Change-Id: I3e6665351de97692ae70207e8b623ad008ca8c9a
2015-07-28 08:35:34 +02:00
Arnaud Versini 563a3935b8 BASIC: Remove BasicCharClass::IsLetterTab
Change-Id: Ib6a13cb7a5725d451c0f8d64c2c543a8a9ec2ad0
Reviewed-on: https://gerrit.libreoffice.org/15876
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: David Tardon <dtardon@redhat.com>
2015-05-26 08:46:32 +00:00
Noel Grandin 539ba642d7 remove unnecessary header file
Change-Id: I3b86a54a773341be7e7e69e88c59dc531ea49c5b
2015-05-17 10:08:59 +02:00
Stephan Bergmann ed83ba34a5 loplugin:simplifybool
Change-Id: I6e181bc4b144c2559ede99d3bae0496cf546415c
2015-04-24 12:36:18 +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
Markus Mohrhard 70b3006002 fix crash when importing unsupported macro content, related fdo#59374
Change-Id: I960c8174454074fd9ddb27fb17244d782c4cb24c
2014-02-12 01:01:35 +01:00
Caolán McNamara 7acea5ae4c coverity#707649 Uninitialized scalar field
Change-Id: I1a95a051463860dc9c7b087bfaf17f3b70f297ee
2014-01-27 14:38:37 +00:00
Herbert Dürr 9e77ddcd19 Resolves: #i123817# prepare codebase for updating to boost 1.55
(cherry picked from commit c31988351c10e9f3fd783730d95da34efd52c153)

Conflicts:
	basic/source/comp/parser.cxx
	basic/source/comp/token.cxx
	dbaccess/source/ui/dlg/generalpage.cxx
	sc/source/ui/unoobj/chart2uno.cxx
	vcl/quartz/salbmp.cxx

Change-Id: Ic9580f2d4a44959cb3e38906eb4153b2c2a54899
2014-01-06 16:32:20 +00:00
Noel Grandin e9c4ee996d remove unnecessary use of OUString constructor in BASIC module
Change-Id: Iee86ce9200285647d5031cb2f89266a52704dd44
2013-11-11 11:21:25 +02:00
Noel Grandin 8396cce9b5 clean up places accessing the NULL at the of an OUString
There were only a couple of real bugs fixed, but we're a little
bit safer now.
This also fixes the assert and the comment in OUString::operator[]
about this.

Change-Id: Ibe16b5794e0ba7ecd345fa0801586d25b015974c
2013-10-23 13:12:55 +02:00
Gergo Mocsi d3ff876f3c GSOC work, small fixes after
Fixed some errors after the merge.

Change-Id: I8c0360d7fd04425a00dacb37f673d10efffa0ebe
2013-09-02 18:17:03 +02:00
Gergo Mocsi 9b534193a3 GSOC work, behavior fixes
Code completition: left/right arrow keys handled. Left arrow dismisses the dialog when reaches the dot. Right arrow dismissed the dialog when reaches the next line.
ListBox appearance fixed.
TAB key can insert the first matching entry.
Autocorrect:
"Autocorrect Keywords" has been renamed to "Autcorrect" (in the UI, and the config file, after this patch a make dev-install is needed). Keyword case correction is not just capitalizing the first letter ( eg. Elseif -> ElseIf ).
Autoclose procedures:
cursor is being placed inside the preocedure.

Change-Id: Ie7e9ae96b49bd94562db83f96e1c4ad63ab3f3d6
2013-09-02 18:16:58 +02:00
Luboš Luňák 64b993e046 finish deprecation of O(U)String::valueOf()
Compiler plugin to replace with matching number(), boolean() or OUString ctor,
ran it, few manual tweaks, mark as really deprecated.

Change-Id: I4a79bdbcf4c460d21e73b635d2bd3725c22876b2
2013-08-21 15:10:35 +02:00
Takeshi Abe 392c5b2a70 Mark as const
Change-Id: Idd1d0641d5b7d8594f354c7d2e2a9093ecc6b2f7
2013-08-01 04:33:23 +09:00
Marcos Paulo de Souza c40cd8a4f2 Remove all occurences of RTL_* and ::rtl prefix from basic
This is a big commit, so thanks for your time reviewing this :)

Conflicts:
	basic/source/sbx/sbxscan.cxx

Change-Id: Ib9bc710b87475b5695764557321e5dcef25e5933
Signed-off-by: Miklos Vajna <vmiklos@suse.cz>
2013-01-03 10:07:39 +01:00
Luboš Luňák 59074c09b8 remove use of #pragma optimize
All these are years old, guessing from some comments as old
as Windows 9x support. These workarounds do not seem to be needed now.

Change-Id: If67baa5cdefcec33b28696c764b1ed96143b7ccd
2013-01-01 22:39:15 +01:00
Julien Nabet f52e8908a6 Some cppcheck cleaning in basic
Change-Id: I01ad0d95a94ede6998850937c58495920e7a4113
2012-12-28 18:00:02 +01:00
Norbert Thiebaud 27239ad230 basic: String -> OUString
Change-Id: I42479b4bade5111e38d69f04c889c166f340d5ba
2012-11-07 02:14:53 -06:00
Norbert Thiebaud d92814f462 basic: preliminary cosmetic clean-up
parsing 1000s of line of code is hard enough without having to fight
with weird indentation and irregular formatting.

So as the review progress, in order to follow the code, cosmetic changes
were made...

In order to minimize the task of the reviewers and allow them to
concentrate on what matter, an effort is made to collect these
cosmetic changes into this separate commit.

Change-Id: I3c9b04a0150d0d0a048c2e976fe24de4f2b6b98a
2012-11-03 20:24:28 -05:00
Takeshi Abe 407509c058 sal_Bool to bool
Change-Id: I75dd089b34c94831bfdfd0e02585af7609013a08
2012-08-22 19:25:08 +09:00
Michael Meeks 63c508e3e8 re-base on ALv2 code. Includes:
118568: switch to using ucpp
    Patch contributed by Juergen Schmidt
    http://svn.apache.org/viewvc?view=revision&revision=1209396
2012-07-18 09:29:19 +01:00