1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
Commit graph

770 commits

Author SHA1 Message Date
Nathan Ridge
49f1411c7b Bug 529338 - NPE in QuickFixUseDotOperator.apply()
Change-Id: I195f804e64abb77b5540d5abf0249d4de7816024
2018-01-10 00:05:03 -05:00
Alena Laskavaia
ce18aad766 Bug 350144 - suppressing the "No break" problem with regexp
added regex support for suppression comment

Change-Id: I590d171fcce23d547a489e42a791aa484963d4a6
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
2017-12-26 15:08:20 -05:00
Hansruedi Patzen
a4dcbbaf15 Bug 527553: Detect invalid decltype(auto) with a type specifier
The evaluated type of 'decltype(auto)' in combination with const and/or
volatile will be a ProblemType since this is not valid code. The patch
also contains a checker to give the user a visual feedback.

Note: A proposed quick-fix has been removed after a short discussion.

Change-Id: I8760ed0ac28e28529ab30516accac9c0413c87d9
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2017-11-30 14:56:02 -05:00
Hansruedi Patzen
19b4848e08 Bug 527709 - [Checker] Test suite fails on Windows
Change-Id: I70cf18245dc8dba14493f212c932ea08ae85a6cf
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2017-11-24 10:44:11 +01:00
Nathan Ridge
a20271a780 Bug 526669 - Use the Matcher API correctly in CodanProblemMarkerResolutionGenerator
Change-Id: Ia47cabea736fe2965f60117ae2074b6e2212d917
2017-11-21 14:31:14 -05:00
Doug Schaefer
12e709427d Releng fixes, ensuring legal files are there. Removing projects.
Removed the empty debug.core.tests project. Also removed the
utils-feature and remote-feature projects since these shouldn't
be features.

Change-Id: Ib5d297c626de5328e3421a1fc9346330d9907750
2017-11-21 13:10:50 -05:00
Nathan Ridge
acd931e2b6 Bug 525953 - Simplify the implementation of AbstractCodanCMarkerResolution.getProblem()
In the process, the (problematic) assumption the function previously
made that a marker's resource will be a file, has been removed.

Change-Id: I657e1e99d9b06921558ca13960b4fd3ad554911d
2017-10-26 14:05:51 -04:00
Jeff Johnston
c96d126b86 Bug 513589 - Add support to build CDT projects in a Docker Container
- add IOptionalBuildObjectPropertiesContainer interface to use for
  objects that supply optional build properties
- add new IOptionalBuildProperties interface that defines
  optional build properties donated by external plug-ins
- add new
- change IConfiguration to an IOptionalBuildObjectPropertiesContainer
- change IManagedProject to be an
  IOptionalBuildObjectPropertiesContainer
- fix ProcessClosure to ensure that readers are not null before
  accessing them
- fix Container launch delegate to look at project optional
  build properties for active configuration to fetch connection
  and image info and use said info to find a matching
  launch or create a new one
- have Container launch delegate use the image name as part of
  the launch config name
- have Container launch short-cut also use the project's
  optional build properties for the active config to get
  connection and image information before any defaulting
- change AutotoolsNewMarkerGenerator to store the command
  launcher as an ICommandLauncher
- add new CommandLauncherFactory extension to cdt.core that
  allows plug-ins to specify a CommandLauncherFactory that
  will return an ICommandLauncher based on the project
- add macros for new extension to CCorePlugin
- add new CommandLauncherManager class that loads
  CommandLauncherFactory extensions and is used to give
  an ICommandLauncher wrapper that will go through the list
  of CommandLauncherFactory extensions until one returns
  non-null ICommandLauncher
- add code to RemoteCommandLauncher so it will use the
  CommandLauncherManager to get the local launcher
- also change RemoteCommandLauncher to check at execution
  time whether the command is local and in that case use
  the local command launcher
- add new ICommandLauncherFactory interface
- add new ContainerCommandLauncher to launch
- add new ContainerCommandLauncherFactory class for returning
  a ContainerCommandLauncher instance to launch commands
  in a Docker Container
- change MakeBuilder to use CommandLauncherManager to get
  its ICommandLauncher
- change CommandBuilder to use CommandLauncherManager too
- ditto for Builder and AbstractBuiltinSpecsDetector and
  ExternalToolInvoker
- change Configuration to load/store optional build properties
  as well as return the properties to get/set
- ditto for MultiConfiguration
- change ManagedProject to implement IOptionalBuildOptionProperties
  interface
- ditto for ProjectType
- create new OptionalBuildProperties class to store optional
  build properties for a configuration
- bump cdt.docker.launcher to 1.1.0
- use CommandLauncherFactory extension to define
  ContainerCommandLauncherFactory
- add optional ContainerPropertyTab which allows the end-user to
  optionally choose to build a C/C++ project in a Container
  and specify the connection/image to use
- in LanguageSettingsSerializableSettings class, call the
  CommandLauncherManager getLanguageSettingEntries method
  to get the massaged language setting entries based on the
  current list
- in LanguageSettingsProviderSerializer, try and get the
  pooled entries using the cfg description so that it will
  have the project and can use the CommandLauncherManager
  to get entries from image
- in ContainerCommandLauncherFactory move cached headers under
  a HEADERS directory in the plug-in area
  - create a sub-directory for the connection and a sub-directory
    for the image based on cleansed names
  - store the real names of the connection and image to use
    later in the DockerHeaderPreferencePage
- modify LanguageSettingsEntriesTab to force the horizontal
  scroll bar to appear (this is a bug in SWT SashForm support
  and the fix here isn't quite correct, but is better)
- add new DockerHeaderPreferencePage that allows user to
  remove cached headers from images
- change C/C++ Docker preferences to be titled: Docker Container
- fix LanguageSettingsWorkspaceProvider.getSettingEntries method
  to use the CommandLauncherManager so entries will be transformed
  to use cached headers
- add BaseDatabindingModel class
- add DataVolumeModel class to model a volume mount
- add ContainerPropertyVolumes model to model volume specification
  and selected volumes
- add properties to ContainerCommandLauncher to represent
  volumes and selected volumes for a configuration
- add ContainerDataVolumeDialog for specifying a volume
  mount by the end-user
- add a null detector for cfgDescription in
  LanguageSettingsSerializableProvider
- fix AutotoolsNewMakeGenerator.getWinOSType to not specify "." for
  working dir
- fix GCCBuiltinSpecsDetectorCygwin to not map paths to Cygwin if
  the current configuration is enabled for container build
- add logic to ContainerCommandLauncher to look for Windows
  file formats and change them to unix format and map
  any "." working dir to be /tmp
- fix ContainerLauncherConfigurationDelegate similarly
- fix AbstractBuiltinSpecsDetector to pass in the current
  configuration description when getting the CommandLauncher
  since the current configuration may not be the active
  configuration
- change ContainerPropertyTab to add Elf and GNU Elf binary parsers
  when build in Container is chosen so that output executables
  are treated as Binaries by the CDT project
- add documentationl for the ContainerPropertyTab in Build Settings and
  the Data Volume dialog pop-up it brings up
- change CommandBuilder to accept a project as an argument
  to its constructor and to pass this as an argument to
  the CommandLauncherManager
- have StepBuilder pass project when creating a CommandBuilder

Change-Id: Ia78488b93056e6ec7ca83a6c87b3a9d2b9424943
2017-10-22 05:38:51 -04:00
Nathan Ridge
9792a72dae Bug 525438 - Fix file path comparison in AbstractIndexAstChecker.getLineCommentsForLocation()
Using IPath.toPortableString() was causing a forward slash vs.
backward slash mismtach in the path comparison on Windows.

Change-Id: Ib3eb392065fb473f6b6e70cb1dcddceb34ae7240
2017-10-13 13:53:17 -04:00
Doug Schaefer
11dcec43f2 Add UI tests plugin for CMake. Fix a couple of bugs it found.
Also restructures the pom.xmls to put the modules in the top level
so we can order them to have the test plugins build after them.

Change-Id: I2f0e4ebd252791fb8844cdf0f635d574946207aa
2017-10-06 16:36:51 -04:00
Felix Morgner
d47cb6c4ea Bug 495842: Add a quick fix for codan problems that ignores them by adding a @suppress comment
Change-Id: I760d2d435010f219bdb94273a6450e4163fe472e
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2017-10-04 11:13:54 -04:00
Nathan Ridge
33d33a8cd6 Bug 525350 - Ensure a lookup point is always set during indexing, code analysis, and code completion
Also push a more accurate lookup point in a few places.

Change-Id: I635569178d8d9afd23f7782aeebdaed714f1a10d
2017-10-03 22:23:09 -04:00
Nathan Ridge
64709c980d Bug 513105 - Store the current lookup point in a thread-local static stack rather than passing it around everywhere
Change-Id: I3da7326d1ce6bede8d4787d98f38fb2064288338
2017-09-25 12:51:22 -04:00
Nathan Ridge
bd6da0b03d Bug 486082 - Have ProblemBindingChecker report errors of type IProblemBinding.SEMANTIC_INVALID_TYPE
Change-Id: I58f27a8783ea0dca53da5b45c2da11c6623892fd
2017-06-19 00:26:59 -04:00
Thomas Corbat
7376388a94 Bug 517405 - Marker refresh causes editor to open
Changed isApplicable to not retrieve the TU from the editor if it is not
open. Applying the quick fix will still open the editor.

Change-Id: Ib328ffa2054145eda8b2e72fe646fca2e7fc7905
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-30 09:29:48 +02:00
Nathan Ridge
cacb84e277 Bug 514423 - Ensure CodanCReconciler is installed on editors from all windows
Change-Id: I323a78fc1bd3a43270e27be7eb21c13f5a85de9f
2017-05-29 13:18:28 -04:00
Jeff Johnston
aab8c277ac Fix Codan quick-fixes
- remove plugin.properties
- move fix-it regexes to bundle.properties

Change-Id: I6d389a12348e35d98c25ae18ca4026e03ea3e41d
2017-05-26 16:35:27 -04:00
Nathan Ridge
60503efc58 Bug 512932 - Improve type checking of GCC builtins
Specifically, this patch:

  - Adds support for a new builtin, __builtin_assume_aligned.

  - Models __builtin_constant_p as a function instead of a macro.
    This inhibits constexpr evaluation, but allows for correct
    type-checking.

  - Diagnoses misuses of known builtins, instead of ingoring them like
    unknown builtins.

Change-Id: Ie5a26f2010dc5b19e6f32a8c6a1237fe88da393e
2017-05-08 23:04:17 -04:00
Rolf Bislin
a583190f52 Bug 514685 - codan: handle fallthrough attribute
and provide quickfix for adding fallthrough attribute
and add JUnit Tests
and add StandardAttributes class

Change-Id: I8cf0238771dc92bd1784b9dfb35a680d078b1db6
Depends-On: Ic09aa96f896b0a5dd998156e05930704775f695b
Signed-off-by: Rolf Bislin <romibi@bluewin.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-08 13:25:15 -04:00
Alena Laskavaia
32c2e14b80 Fixed copyright
Change-Id: I801f28d73afeba8432283eb9b5e8de3fa9b47a32
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
2017-05-02 12:41:40 -04:00
Thomas Corbat
db6790d824 Bug 515814 Copyright header for CaseBreakQuickFixCommentTest
Associated with Bug 515814


Change-Id: Id32b0e8a77a774ff8922aa289a457e4f63434ecd
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-01 10:09:14 +02:00
romibi
525d8a23fb Bug 515814 - codan: add missing JUnit Test
Change-Id: I626811b33ed09bb07c947c1c491b2c04e282232b
Signed-off-by: romibi <romibi@bluewin.ch>
2017-04-26 11:35:25 -04:00
Jeff Johnston
795a90288b Bug 497670 - Support compiler provided "fix-it" hints
- add new FixitErrorParser that extends RegexErrorParser and is
  used to replace the error parser for GNUCErrorParser
- add new FixManager class to bind a fixit message with its
  problem marker
- modify ProblemMarkerFilterManager to register the last
  accepted ProblemMarkerInfo for a particular resource so
  the FixitErrorParser can find the last error marker for
  the file that precedes the fixit message
- FixitErrorParser looks for fix-it messages and binds them
  via FixitManager to the last error marker for the file
- add new Fixit class to contain the details of a gcc fix-it
- add new QuickFixForFixit which applies the gcc fix-it for the
  file
- add new (.*) regex in codan.ui.checkers patterns that will
  trigger before any other error and will look for the
  fix-it message format
- change cdt.core to expose cdt.internal.errorparsers to
  codan.checkers.ui
- change codan.core to expose codan.internal.core.model to
  codan.checkers.ui
- fix CDocumentProvider.setOverlay method to not overlay
  a CMarkerAnnotation that has a quick fix
- when deleting all C problem markers, also make a call
  to FixManager.deleteAllMarkers() so markers aren't
  left referenced

Change-Id: Ibf8ff7d8addb1bf092dc4ef35de0d92de0309589
2017-04-17 20:01:27 -04:00
Marc-Andre Laperle
0046099052 releng: Make use of Tycho POM-less functionality
This removes a lot of pom.xml from the source tree. This is using the
"POM-less" Tycho functionality.
See
https://wiki.eclipse.org/Tycho/Release_Notes/0.24#POM-less_Tycho_builds

One advantage of this is that you do not need to update the version in
the pom.xml when you change it in the MANIFEST.MF because the pom.xml is
automatically generated. This also reduces a lot of the duplicated
information and pom.xml repetition.

- Maven 3.3 and up is required.
- Only eclipse-plugins and eclipse-features can be pom-less.
Repositories, target and others still have pom.xml.
- New parent poms are added because a parent is necessary directly one
level above the plug-in/feature that will have its pom generated
- Some test plug-ins had to be renamed .test -> .tests because it's
required so that it detects that it's a test plug-in
- Some suites were renamed so that they all use the same consistent name
"AutomatedIntegrationSuite"
- Profiles were added for the more common test configurations. They are
activated by the presence of simple .properties files that only serve to
activate the correct profile. The profiles:
  - One for UI tests (UI present and start in UI thread)
  - One for SWTBot tests (UI present and do not start in UI thread)
Other test plug-ins that are too different are kept intact and still
have
a pom.xml
- Fragments are kept intact since they all have different target
platform configurations

Change-Id: I9d73380eb766f547830c552daf08053a30b1845c
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-02-13 23:19:56 -04:00
Jeff Johnston
7d0117d24e Bug 511229 - RFE: Add quick fixes for some basic gcc errors
- change codanMarkerResolution schema to support translatable
  regex statements for matching
- bump cdt.codan.ui version
- add additional codanMarkerResolution extensions to codan.checkers.ui
  to handle some basic gcc error messages with quick fixes
- add QuickFixAddSemicolon, QuickFixRenameMember,
  QuickFixUseDotOperator, and QuickFixUsePointer classes
- add new QuickFixMessages
- add plugin.properties to cdt.codan.checkers.ui to allow the quick
  fix regex matchers to be translated in the future
- change the generic error message for gcc error parser so that the
  column is reported as the problem variable (useful for certain
  quick fix resolutions)
- bump up cdt.core

Change-Id: Ibb24c1a79c4d91ead3fc629ea3d4e7425b4e7f23
2017-02-06 12:33:34 -05:00
Nathan Ridge
d45ff124e3 Bug 510722 - Handle a null AST in ExpandSelectionJob and ControlFlowGraphView
Change-Id: Iafd1b9a32833fb67554902d13955023c149a132e
2017-01-21 16:15:52 -05:00
Marc Khouzam
8cf5ed53f2 Update version to 9.3.0
Change-Id: Ic953ccc5d38ff3661ca44de21ed8c4b7dad5b246
2016-11-15 20:32:51 -05:00
Marc Khouzam
334777eb6e Update version to 9.2.0
Change-Id: I36ad4218b20b8ea70584c89f5be45c757bf4c714
2016-11-14 23:50:05 -05:00
Dominic Scharfe
56c496ba5a Bug 507148. Fixed opening/switching to editor.
- Reuse the TU from the open editor if present, otherwise load it from
workspace
- Added test plugin org.eclipse.cdt.codan.checkers.ui.test

Change-Id: I725b7b8e462ffba39dd6c9a828ab72dd58f86b1f
Signed-off-by: Dominic Scharfe <dominic.scharfe@coseda-tech.com>
2016-11-11 11:18:55 +01:00
Nathan Ridge
d77511f4c4 Bug 496720 - Respect scope filters for AST-based checkers
Change-Id: Ib96879ec50bdc5a14215abbe6d109bcf3767d4f4
2016-10-26 01:18:55 -04:00
Sergey Prigogin
64aec369e1 More robust implementation of ControlFlowGraphBuilder.isConstant method
Change-Id: I43fd84e8c374a638834be3c2aeb216b96fc6b461
2016-10-05 17:13:00 -07:00
Sergey Prigogin
ed0b384e9d Bug 504004 - ReturnChecker should treat constructors and destructors as
void functions

Change-Id: I8d957abcade86224af1e7ae1b1456f6a8e5b3813
2016-10-04 18:49:52 -07:00
Toni Suter
25d4502b80 Bug 490475. Support the evaluation of C++14 constexpr functions
Change-Id: I05029f26b6d33cbeeab8138a270b38c4018b64b5
Signed-off-by: Toni Suter <tsuter@hsr.ch>
Signed-off-by: Silvano Brugnoni <sbrugnon@hsr.ch>
2016-09-16 03:09:25 -04:00
Dan Crosscup
88df41a67f Bug 500884. Fixed ExternalToolInvoker so it starts the Build Console.
Build Console needs to be started before 
OutputStream and ErrorStream are retrieved for the Sniffer.

Change-Id: I1aea84ca9fa2e6806cb07513bb2c9cad47c11617
Signed-off-by: Dan Crosscup <tunzis@gmail.com>
2016-09-05 17:48:12 -06:00
Marc Khouzam
cd559dafaf Update version to 9.1.0
This commit used the script releng/scripts/ChangeFeaturesVersion.sh

Change-Id: I8274a6e8dd5c0f1e450f07952e138b265a441a62
2016-08-17 10:11:57 -04:00
Nathan Ridge
5344893756 Bug 496628 - Avoid codan markers that cover an entire class declaration
This fixes a regression from bug 486610 which introduced these in some cases.

Change-Id: I791528ce7f0bc061386aaa97dd9cecb7abeecd72
2016-07-06 23:16:22 -04:00
Marc Khouzam
9e1e981b4d Move the rest of the CDT plugins to java 8
This change was generated using the script:
releng/scripts/ChangeJavaVersion.sh

Change-Id: I2ad96dc682a5acb8529c3edec40de279c331b5a4
2016-06-22 14:51:43 -04:00
Alex Blewitt
6bdca5f4a2 Bug 492230 - Replace buffer.append(a+b) calls
When using a `StringBuilder` or `StringBuffer` to create a string message,
using implicit string concatenation inside an `.append()` call will
create a nested StringBuilder for the purposes of creating the arguments,
which will subsequently be converted to a String and then passed to
the outer StringBuilder.

Skip the creation of the intermediate object and String by simply
replacing such calls with `buffer.append(a).append(b)`.

Where values are compile time String constants, leave as is so
that the javac compiler can perform compile-time String concatenation.
Ensure that NEWLINE isn't appended in such a way since it is not
a compile time constant `System.getProperty("line.separator")`

Change-Id: I4126aefb2272f06b08332e004d7ea76b6f02cdba
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-25 11:38:47 -05:00
Alex Blewitt
2356a29c70 Bug 492200 - Replace StringBuffer with StringBuilder
There are many opportunities for replacing `StringBuffer` with
`StringBuilder` provided that the type isn't visible from the
public API and is used only in internal methods. Replace these
where appropriate.

Change-Id: Ic2f50c5b6f3c3a4eae301bb3b40fb6faed235f79
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-21 22:17:03 -05:00
Sergey Prigogin
e901d4a7d4 Cosmetics. 2016-04-21 16:22:03 -07:00
Sergey Prigogin
9f79b897c1 Bug 492200 - Replace StringBuffer with StringBuilder where appropriate
Change-Id: Ib52b839a211e2068e56da4b62a5b9640fef55d40
2016-04-21 16:15:31 -07:00
Alex Blewitt
2114f6b108 Bug 491984 - Replace .equals("") with .isEmpty()
In many cases a String's empty status is tested with `.equals("")`.
However, Java 1.6 added `.isEmpty()` which can be more efficient since
it compares the internal length parameter only for testing. Replace
code using the `.isEmpty()` variant instead.

Some tests for `"".equals(expr)` can be replaced with `expr.isEmpty()`
where it is already known that the `expr` is not null; however,
these have to be reviewed on a case-by-case basis.

Change-Id: I3c6af4d8b7638e757435914ac76cb3a67899a5fd
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-19 13:35:54 -04:00
Alex Blewitt
fc07efa909 Bug 491825 - Remove primitive wrapper creation
Using `new Integer` and other wrapper types such as `new Character` results in
potential extra heap utilisation as the values are not cached. The built-in
`Integer.valueOf` will perform caching on numbers in the range -128..127 (at
least) using a flyweight pattern. In addition, parsing `int` values can be done
with `Integer.parseInt` which avoids object construction.

Adjust tests such as `"true".equals(expr)` to `Boolean.parseBoolean(expr)`.

Change-Id: I0408a5c69afc4ca6ede71acaf6cc4abd67538006
Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
2016-04-16 12:17:48 -04:00
Alena Laskavaia
26d87d7b74 removing API for custom preference listeners in codan
- this is replaced by eclipse preference listeners framework

Change-Id: Ia39041c79c643912c883d7fdf507aeb252f13ddc
2016-03-17 15:12:14 -04:00
Alena Laskavaia
d8a5d3cc0e Bug 489553 - ConcurrentModificationException below
MapProblemPreference.clone

Change-Id: If80417f386890495961745d13b3ad16040677e2e
2016-03-15 08:57:52 -04:00
Alisson Linhares de Carvalho
9ba50a9462 Bug 486610 - Fixed a highlight problem in reportProblem method
Every time we report a problem in a declaration/expression that occupies more
than one line, the codan marks the entire line as a problem - including
everything before the node. This patch solves this inconvenient behavior.

See https://bugs.eclipse.org/bugs/show_bug.cgi?id=486610 for a complete
explanation.

Change-Id: I742cbaac8a1392676695d574355597b0cfc87385
Signed-off-by: Alisson Linhares de Carvalho <arescarv@gmail.com>
2016-02-23 16:59:59 -05:00
Sergey Prigogin
940975d7d7 Code cleanup in Codan tests.
Change-Id: Ib6fbc348ef175441029a17dd2129d95aaee3305f
2016-02-22 12:47:59 -08:00
Marc Khouzam
2ad68f7f80 Update copyright dates
Change-Id: I94ac38c37657e270f62db9bbd2859c2c6de40e5f
2016-02-11 01:50:14 -05:00
Marc Khouzam
766f66c0ab Missing copyright header.
Copyright assigned to company of the committer
who did the first commit of the file.

Change-Id: Ia133694018c798f9558258810982f5276737a0b0
2016-02-01 12:47:41 -05:00
Marc Khouzam
b745736775 Incremented CDT features version to 9.0.0
This includes bumping the standalone debugger to 9.0.0

Change-Id: I55fae1cec995b5f6865a5b174c004ed1b76e9bea
2016-01-18 16:37:47 -05:00