1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 17:05:26 +02:00
Commit graph

36275 commits

Author SHA1 Message Date
Torbjörn Svensson
570c5b7ff0 Bug 568079: No need to check for NULL before free()
Change-Id: I4948ce07ed4ec426ce2a3bac226281409c25f7c9
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-31 20:24:44 +01:00
Torbjörn Svensson
3ae7b88630 Bug 568079: Add missing bracers
Change-Id: Icd916d224d4900cf2227f868f8b94cdae13c3f6b
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-31 20:24:44 +01:00
Torbjörn Svensson
82bc0b67e5 Bug 568079: Removed generate method comment from implementation
The comment is part of the generated header file

Change-Id: Ie890ad4d906c0f4e6a23b2a42a1ef342d1da8865
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-31 20:24:35 +01:00
Torbjörn Svensson
9a440e0b44 [releng] Return exit code from GCC in wrapper
Change-Id: I73ce7fb4cb58b25809359f3bc8e805704737b7d8
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-31 20:21:26 +01:00
Alexander Fedorov
f2dcc3dff3 Bug 567966 - CDT code clean up: type safety warnings
Generalize the type of elements and resolve type safety warnings

Change-Id: Id8e443d0c071bbd5447092099e80574cdf7fd9b3
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-29 06:11:39 -04:00
Marc-Andre Laperle
5a2830648c Bug 568224 - Support output parsing for /clang:-isystem when substituting cl for clang-cl
Add /clang:-isystem. It's handled similarly to /imsvc but interestingly it
doesn't support having spaces between the option name and it's value.

Change-Id: Ic5d61df1c7adebbf707d93a60858e942354c9ed9
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-25 22:51:48 -04:00
Torbjörn Svensson
c5a53bb7fe Bug 568079: Format C/C++ code
Added a new C/C++ formatter profile called "Unmanaged profile 'CDT'"
(name stolen from the Java formatter) that is basically K&R with the
tweak of maxium line width set to 120 (same width as for .java files).

Added enforcement of the formatter during build.

libspawner.so/jnilib have differences because the re-formatting changes
line numbers and therefore the __LINE__ macro expands to a different
value.

Change-Id: Id3a0619cb31640c7817dc684c72139f90cab0fc6
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-24 16:54:40 -04:00
Torbjörn Svensson
0429be17e1 [releng] Report more than one failed bundle per invocation
List as many as possible of the failed bundles when doing the baseline
compare.

Change-Id: I0d2817c418cf865f7fc6ea1c7e25d5b3b7b41bd5
Signed-off-by: Torbjörn Svensson <azoff@svenskalinuxforeningen.se>
2020-10-24 18:39:47 +02:00
Alexander Fedorov
b8ba9605c6 Bug 567966 - CDT code clean up: type safety warnings
Generalize the type of elements and resolve type safety warnings

Change-Id: Ibbbdc26663a7fede9debef3ca5d1c79ca346608c
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-24 16:37:11 +03:00
Alexander Fedorov
87dff3db99 Bug 567966 - CDT code clean up: type safety warnings
Generalize the type of elements and resolve type safety warnings

Change-Id: I5cb8d06a80207a7df8240f499936cdc49d49964c
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-24 07:01:13 -04:00
Marc-Andre Laperle
6ca0bb78bb Bug 329995 - Update all C/C++ views when the active configuration changes
Change the default workspace indexer setting

Use the active configuration by default, which is less confusing because
the UI is properly reflected on active config change.  Using a fixed
config can be seen as a more advanced setting for performance concerns.

A new preference is added, only used at default scope:
org.eclipse.cdt.core/cprojectdescription.configRelations
This can be used by products to customize the default according
to their needs (plugin_customization.ini).
This was done because this is a fairly impactful change for users.

Change-Id: I35888ffe5bc1814943f432f88a12094394924c88
Signed-off-by: Alex Freidin <freidin.alex@gmail.com>
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-20 22:59:41 -04:00
Marc-Andre Laperle
cebba80b36 Bug 567822 - [Dark Theme] Several controls using ControlFactory have wrong background (preferences, dialogs)
I don't think "inheriting" by hand the background colors is supposed to
be done like this. Removing the lines setting the background to be the
same as the parent fixes the issue. I also verified all places in the UI
before/after the change.

Change-Id: I2eb4cc5afdd303d5d5613fc3d50d67d0c18c7028
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-19 23:26:17 -04:00
Alexander Fedorov
219526880f Bug 567966 - CDT code clean up: type safety warnings
Use List<IProject> instead of raw List
Use HashSet<IProject> instead of raw HashSet

Change-Id: I583daad225f828345d7109dba582ad5507431d65
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-18 15:49:26 +03:00
Alexander Fedorov
aca757df28 Bug 567966 - CDT code clean up: type safety warnings
Use Map<String, String> instead of raw Map
Use Entry<String, String> instead of raw Entry

Change-Id: I6e9ffc4dad34fcb8d2b0b1db04cfc901d9225f74
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-18 14:32:36 +03:00
Alexander Fedorov
4849609c6d Remove redundant attributes for category.xml
Attributes `url` and `version` can be omitted for features

Change-Id: I37ef5f52cd3a22dc9ccbce0905aa6642edf60a39
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-15 09:15:22 +03:00
Jonah Graham
34b5f9612e [releng] Keep empty directory
Change-Id: I43188c0da02c98d15c5264369bd18612ceefa5ff
2020-10-13 21:51:09 -04:00
Martin Weber
af1b6fa238 Bug 567488: Move cmake code to cmake dir
Change-Id: If3df1f176ed82475d01a047c3a6d8c0882bb1d76
Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
2020-10-13 20:42:22 -04:00
John Dallaway
13310b6cd7 Bug 567662: Eliminate pixel-level sizing on startup page
Change-Id: I36293ce452e4ed921c465252e5b6b99337490768
2020-10-13 12:09:26 -04:00
Marc-Andre Laperle
bc76b0a7c3 Bug 567778 - [Include Browser] Cannot open the Include Browser on file outside source folder
CoreModelUtil.findTranslationUnit only returns CElement in the populated
CModel of a project. This shouldn't change as a large majority of client
code need to see the model this way and not consider files that are
outside source folders. So for a file not under a source folder (and
therefore not in the CModel), we can just create a new translation unit
instance for it. This is actually how the editor deals with it too.

Change-Id: I8898822e94cac8562edcc0a726fdd8680119faca
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-12 12:15:43 -04:00
Jonah Graham
3a6fd58665 [releng] Update help-docs-eclipserun-repo to use Platform 4.17
Change-Id: I85f28fe919b68fc222acb90850fc538941c3a826
2020-10-12 10:39:13 -04:00
Jonah Graham
a1201a811a Bug 567810: Squash over zealous warning from PDE
See also Bug 558477

Change-Id: I0765a2a49dc77e2f24af787b0f9a1e0e1e510a30
2020-10-12 10:14:26 -04:00
Jonah Graham
c40ed25daa [releng] Update API Filters
Remove old filters that are no longer relevant and mark some API warnings
as ignored.

Change-Id: Id687740b4261f9441f10804941a1d2aa1a3746c8
2020-10-12 10:14:26 -04:00
Jonah Graham
381bb8f325 [releng] Update simrel-site to 2020-12
Change-Id: I1371744adbd233ca8a101b01ae85152b4ff8769b
2020-10-12 09:10:30 -04:00
Jonah Graham
44a4b92686 [releng] Update maven-resources-plugin to latest version
Change-Id: I94c4968760400cad2d1979087ef6a56a700c5817
2020-10-12 09:09:48 -04:00
Jonah Graham
aff7bc21ad [releng] Update jacoco-maven-plugin to latest version
Change-Id: I3cc61cc97f94a14b859f26b31093e3a7490dd93a
2020-10-12 09:09:33 -04:00
Jonah Graham
1a89aef090 [releng] Bump version to 10.1.0
Change-Id: Ia89f4c20e59d07bd692c648cfca36efcae210160
2020-10-12 09:07:23 -04:00
Jonah Graham
938729c522 [releng] Update to Platform 4.18 M1a
Change-Id: Iab57caf16dc5ea97b646376f9ef8f3882619f6e1
2020-10-12 08:49:46 -04:00
Jonah Graham
ac86378fe6 Bug 567261: API Filters and documentation for reverted API
Change-Id: I6b58a409dd8ac53f685036445fe517fbb1cdc76a
2020-10-12 08:49:31 -04:00
Jonah Graham
46081b7fa4 Bug 567738: Remove CDT devel.launch
Change-Id: I1be33ca9e719827b7a8056caa63e24e493995a72
2020-10-09 15:10:38 -04:00
John Dallaway
5bc332d14c Bug 567662: Eliminate pixel-level sizing on debugger page
Change-Id: If0f14b9ed8d6e6343888ba8acb3b4f432f15c5b5
2020-10-07 08:57:49 +01:00
Jonah Graham
066bb7cd9a [releng] Update comparator repo
Change-Id: I021e1ae414239ba2daecfce10c1ce500a2517043
2020-10-06 16:20:18 -04:00
Marc-Andre Laperle
fa270ed30a [releng] Update plug-in versions
Version changes are all to refect non-API changes (micro version)

Change-Id: I372aa2671a4c7f5c765a42156d3f639b8eaff680
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-06 16:20:18 -04:00
Jonah Graham
24639efcee [releng] Bump version to 10.1.0
Change-Id: I39f7c379c0b43c086a25b047b3af564f6f24d670
2020-10-06 16:20:18 -04:00
Jonah Graham
6084acb880 [releng] Exclude Makefiles from compare-and-replace check for DAP
The generated elf file is still checked, but the makefiles are auto-
generated and have full path names in them, meaning that different
Jenkins jobs (with different workspace paths) cause a difference.

Change-Id: Iaa2eab80ba4b116c06ff1f765160a8580c0dafff
2020-10-06 14:05:41 -04:00
Jonah Graham
16750b6528 Bug 567124: Disable QML Analyzer relatively quietly on Java 15
Instead of pop-up NPEs and hung UI, log once that QML Analyzer is
unsupported.

Change-Id: I4ad599e870bd73f5cbda8992dedb14405af545f4
(cherry picked from commit 6d76cc5839)
2020-10-06 10:33:30 -04:00
Marc-Andre Laperle
41b741f358 Bug 567261 - Revert "541239: [C++17] Implement parser support for deduction guides"
This reverts commit bcb955a321.

Change-Id: Iaf6ba398e439e3d1da1e3a3b0247c7b24bbfb057
2020-10-05 21:40:00 -04:00
Marc-Andre Laperle
08e8e57162 Bug 565553 - Improve performance of build command parsers with large number of files
Narrow down parsers based on option string

Instead of trying to match all patterns one by one, we can check the
start of the option string to be parsed and narrow down which pattern
(parsers) should be used.

Doing so is much less elegant code-wise as we are "unrolling" the
beginning of the patterns by hand, but it gives a good speed up. Around
300ms saved with a test of LLVM code base (~50% of parseOption time) and
much larger gains on much larger projects or course.

Change-Id: I9e841e7233078d6e38ad08943d98966d0e3c661e
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-04 14:29:11 -04:00
Alexander Fedorov
379e300382 Bug 567554 - Configure CDT.setup and .target for 2020-12 development
Add repository list for 2020-12
Update Orbit to 2020-12

Change-Id: Ib1dd63606be177e0e17000903c9efe5aeea851fa
Signed-off-by: Alexander Fedorov <alexander.fedorov@arsysop.ru>
2020-10-04 02:28:49 -04:00
Marc-Andre Laperle
a6baac7172 Bug 567377 - Add built-ins for Clang already present in parser for other compilers
These were already there for GCC but not for Clang and they are
supported by Clang:
__is_literal (synonym for __is_literal_type)
__is_standard_layout
__is_trivial
__is_trivially_copyable
__float128
__int128

Change-Id: Iec6151492cd30f17e2a5aa4617f6e88812f0f4cc
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-03 12:42:48 -04:00
Marc-Andre Laperle
90a8376658 Add a comment to help explain one of the mysteries of SetCProjectDescriptionOperation
I'm not sure how sufficient this explanation is but it's better than
leaving just "// Why?" for that central piece of code in CDT.

Change-Id: I0858f83b8f4fbe65fd869e96fb210b5af7d16f65
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-03 10:13:24 -04:00
Marc-Andre Laperle
7a938095be Bug 567336 - Allow double-click on elements in Source Location and Output Location tab
Change-Id: Ifed7b5d005977db30f3c9ba4c7dc6a366691df53
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-02 23:52:52 -04:00
Marc-Andre Laperle
cb8e2c6887 Bug 567536 - In a Perforce workspace, untracked language.settings.xml always get prompted to get latest
IWorkspace.validateEdit should only be called if the file is read only.

Quoting IWorkspace.validateEdit javadoc "A client (such as an editor)
should perform a validateEdit on a file whenever it finds itself in the
following position: (a) the file is marked read-only, and (b) the client
believes it likely (not necessarily certain) that it will modify the
file's contents at some point."

Change-Id: Id73d3629f9ce276b931ed586a6dbf19199d56831
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-10-02 23:41:58 -04:00
Alexander Kurtakov
de70eaa5c5 Bug 567455 - Stop using the
IWorkbenchPreferenceConstants.SHOW_TRADITIONAL_STYLE_TABS

Change-Id: I6ee225298d68d68c65cfe6c55e662107055a4238
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2020-09-29 19:15:14 +03:00
Alexander Kurtakov
b5a9c1eeb9 Build with Tycho 2.0.0
Change-Id: I2b47317f35c990f222b43cc14837d0281b8e3bfe
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2020-09-29 18:54:28 +03:00
Marc-Andre Laperle
2cea3eba8b Bug 567169 - Detection for VS 2017 and VS2019 toolchain
Fix a NPE I just introduced. This method gets called before things are
initialized, just like before. I prefer being conservative by restoring
previous behavior and not change too many things by revising the
initialization sequence at the same time of other bigger changes.

Change-Id: I1096621e29b51c67d218c7e55eaf3ebe29858d07
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-09-28 22:50:32 -04:00
Marc-Andre Laperle
5af949d656 Bug 567169 - Detection for VS 2017 and VS2019 toolchain
With this change, support for VS 2008, 2010 and 2012 is dropped
and support for 2017 and 2019 is added.

The new detection uses vswhere.exe as we cannot rely on registry keys
anymore. We also retrieve correct values for INCLUDE, LIB, and PATH
by executing vcvars.bat, which is less brittle and hard-coded than
before. Doing this also partially addresses bug 357980.

We also now store knowledge about multiple VS installation (one for
each major version) and related MSVC toolchain. This is one step closer
to letting users choose which version to use and store this per
configuration in the project.

Change-Id: I3b3579d8c6742ef232626b5e5294bb6f8634a326
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-09-27 21:04:43 -04:00
Marc-Andre Laperle
cb0797481f Bug 566918 - [C++17] Support for __has_include (standard) and
__has_include_next (extension)

__has_include evaluates whether of the header name passed as parameter
exists. This can only be evaluated as part of a #if directive.
Interestingly, it also has to be reported as defined, i.e. #if
defined(__has_include) or #ifdef. In order to report this as defined,
this implementation adds it as a macro but during macro expansion, it's
actually converted as a dedicated token type. Then this token gets
evaluated during normal preprocessor expression evaluation.

In order to parse header names, there were several options. The main
problem is that header tokens (tQUOTE_HEADER_NAME, tSYSTEM_HEADER_NAME)
are actually produced by the Lexer as part of a special mode
(setInsideIncludeDirective) set during the handling of #include. For
expression evaluation, the tokens are already generated without
setInsideIncludeDirective therefore we only have plain string
and < > tokens.

One approach would be to generate header tokens "earlier" than executing
we need to track a new state while fetching token to configure the Lexer
(setInsideIncludeDirective) when in the context of an __has_include.
There are also complications due to macro expansion within the
__has_include where after one expansion, we don't have a lexer in the
context anymore, introducing more changes.

Another approach would be to remove the Header token creation from the
Lexer itself and let the preprocessor assemble the tokens into an header
string, in both cases of #include and __has_include. This mostly works
and is the approach used in Clang, but the problem is that whereas Clang
keeps track of leading spaces of tokens, CDT doesn't. This means with
such change that CDT would now allow #include <  iostream  > (notice the
white space). I think this is too big of a downside and also too big of
a change to introduce this handling of whitespace at the token level.

The approach used here is more conservative and isolated but also shares
less common logic with #include processing. The non-header token
(string, <, etc) are assembled into a header string only in the case of
a __has_include. So a downside will be that #include and __has_include
will be inconsistent in regards of leading/trailing space parsing but I
feel like this is better than making #include more permissive.

Change-Id: I5b9f5c616c8d999e0c916a85b41f96e20037b651
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-09-27 15:12:52 -04:00
Marc-Andre Laperle
2015e9b009 Bug 567334 - Occasional NPE in CompilationDatabaseParser
Make sure the project is still accessible before doing the work.
It's possible that the project got closed before the job had a
chance to start.

Change-Id: If02e818394502397e8958d18284160d4f08ca195
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-09-26 22:28:03 -04:00
Martin Weber
f2761aa76c Sync project layouts with other CDT bundles.
Move sources from src/main/java to src.
Change output dir from target/classes to bin.

Change-Id: I348fdf2960d183e6ba8ddf1b7971c494fb2bca9c
Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
2020-09-25 22:47:41 +02:00
Marc-Andre Laperle
6a3e138431 Bug 567018 - Built-in language settings provider for Clang-cl
It is the same as GCC built-in provider but with tweaked parameters to
pass to Clang driver. It has to be enabled by hand since there is no
toolchain associated with it for now.

Change-Id: I5455d04725b2ee4709844d32ee32d355d120d807
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2020-09-24 17:55:55 -04:00