1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-23 08:55:25 +02:00
Commit graph

858 commits

Author SHA1 Message Date
Jonah Graham
37ed2c406d Bug 540373: Update the compiler warnings/ignores
The previous alignment of all the warnings/ignores
led to too many warnings that weren't there before. This
commit relaxes them a bit.

The core/org.eclipse.cdt.core/.settings/org.eclipse.jdt.core.prefs
is still the "master" copy, with
releng/scripts/check_code_cleanliness.sh containing the
exceptions that apply to test plug-ins.

Change-Id: Ibd4e31ade0b42b31e7cbe5a94f06c6fc15183a56
2018-11-24 10:55:06 +00:00
Jonah Graham
3caea240a3 Bug 540373: Format some Java files that were missed
Some files which has other cleanups applied meant they needed to be
reformatted again. e.g. the removing of type parameters shortened
some lines of code that meant the wrapping changed.

Change-Id: I68ca09567b9530cc2a085c33923642b6de2ec77b
2018-11-23 13:59:46 +00:00
Jonah Graham
ff75ae80fa Bug 540373: Cleanup: Remove trailing whitespace in properties files
Command used:
# Remove space at eol in comments
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/^(#.*)[ \t]+$/\1/' {} +
# Remove space at eol in blank lines
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/^[ \t]+$//' {} +
# Replace escaped spaces at eol with unicode
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\\ $/\1\\u0020/' {} +
# Replace unescaped spaces at eol with unicode
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\]) $/\1\\u0020/' {} +
# Replace escaped tabs at eol with unicode
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\\\t$/\1\\u0009/' {} +
# Replace unescaped tabs at eol with unicode
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/([^\\])\t$/\1\\u0009/' {} +
# Stage all changes
git add -A .
# trim any remaining whitespace and then identify and fixup
# manually
# Only dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/ui/viewmodel/MessagesForDebugVM.properties
# needed this due to missing newline at end of the file
find .  ! -path "./.git/*" -type f -name *.properties -exec sed -i -E 's/[ \t]+$//' {} +

Change-Id: I858f16891fe001f4f7e62d5a4f904146e891cd39
2018-11-23 07:52:26 +00:00
Jonah Graham
aa1040a21a Bug 540373: Remove '(non-Javadoc)' comments
These were inserted in the past automatically by Eclipse but
newer tooling makes them redundant.

These were removed by doing a global find/replace on *.java files
using the following regular expression:
\t/\*\n\t \* \(non-Javadoc\)[^/]*/\n

Change-Id: I59d3248020f10934fde1dda5b5a31e20bb188e19
2018-11-22 22:00:29 +00:00
Jonah Graham
eeb3006e27 Bug 540373: Cleanup: Remove redundant semicolons
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Remove redundant semicolons
and completing the wizard

Change-Id: I3d3175cfdfadec4f815c551d486e42c9f57b80ce
2018-11-22 21:57:01 +00:00
Jonah Graham
caf2292768 Bug 540373: Cleanup: Remove redundant type arguments
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Remove redundant type arguments
and completing the wizard

Change-Id: Iaecc7010f097b4b1fabd29ccaa34ccb23a716fbf
2018-11-22 21:55:36 +00:00
Jonah Graham
8844a8f9f2 Bug 540373: Cleanup: Remove unnecessary casts
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Remove unnecessary casts
and completing the wizard

Change-Id: I287d4066b12fc19d7f73a016e11c9405abb4ceb9
2018-11-22 21:53:35 +00:00
Jonah Graham
8985c7b63f Bug 540373: Cleanup: Add missing annotations
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Add missing Annotations - and selecting all three types:
 - @Override
 - @Override on interface methods
 - @Deprecated
and completing the wizard

Change-Id: I5d367dacb04327107f25e147edc08efc4eb1c2fe
2018-11-22 21:51:31 +00:00
Jonah Graham
a923614c73 Bug 540373: Cleanup: Organize Imports
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Organize Imports
and completing the wizard

Change-Id: Ia7b305a4c967d0e6f4e8fb8c1041e7028b24006c
2018-11-22 21:47:02 +00:00
Jonah Graham
170e654b47 Bug 540373: Cleanup: Format & Remove trailing whitespace
This was done by selecting all projects in Eclipse then
Source -> Clean Up... -> choosing:
- Format source code
- Remove trailing white spaces on all lines
and completing the wizard

Change-Id: I63685372c6bcc67719bcf145123bcb72e5b00394
2018-11-22 21:47:02 +00:00
Jonah Graham
35996a5c5c Bug 540373: Standard .settings auto applied
The releng/scripts/apply_jdt_prefs_to_all_projects.sh was run to
copy standard settings to all other projects.

Change-Id: I4436c947d7f0142f56b709e661379c3eb54f666b
2018-11-22 21:47:02 +00:00
Jonah Graham
c5c5412f8d Bug 540373: Remove invalid javadoc API tags
Change-Id: I240bbe08666b89861fe132c6384174be7883c022
2018-11-22 20:33:28 +00:00
Jonah Graham
f70a8b35c1 Bug 540371: Update to EPLv2 using releng/scripts/change_to_eplv2.sh
Change-Id: Ifbb1d5af2a00bd5634dea200320e8c4303ffca6c
2018-11-22 20:31:51 +00:00
Jonah Graham
f0ce92d3b5 Bug 540371: normalize files before applying EPLv2
Change-Id: I8bfd427bba1df18579d6d5e58ad1e5d704485050
2018-11-22 20:30:13 +00:00
Jonah Graham
48d2271a58 Bug 540373: Normalize newlines with .gitattributes
There is also a new script to verify completeness of .gitattributes:
releng/scripts/verify_gitattributes.sh

Change-Id: I2ce270852ab54b66b6c474a6ec94203fe5bba78b
2018-11-20 21:20:39 +00:00
Karsten Thoms
652602febd Bug 540610 - Add Automatic-Module-Name header
Change-Id: Ia990b24469751050dd9ec8f9b5550804816308b3
Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
2018-10-30 15:49:15 +01:00
Nathan Ridge
a00346af22 Bug 540112 - Perform C++14 return type deduction in ReturnChecker
As part of this change, ReturnChecker was refactored to compute the
return type as an IType, which allowed for removal of some logic in
ReturnChecker which duplicated CPPVisitor's type resolution work.

Change-Id: I9cd8512164d650a5ee11d2e58fdae477e3c428a2
2018-10-28 22:52:37 -04:00
William Riley
f3ca365140 Bug 540367 - Increment version numbers
Change-Id: I4a355170a7075f0a98ba3c1a5131c235c89b07d2
2018-10-23 11:20:31 -04:00
Marc-Andre Laperle
efbda46cba Bug 389577 - False positive "Unused static function"
Add handling of constructor/destructor attributes and some improvement
when functions were previously declared but not defined as used.

Change-Id: I7537bc87c6c4bc5b294d8e15fe5b42c92b3f2974
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2018-10-11 22:43:20 -04:00
Bassem Girgis
ae8442fd6d Bug 519311 Handle delegating constructor in class template
- Fixed delegating constructor resolution for templated classes in
ClassMembersInitializationChecker
- Added a unit test for this bug

Change-Id: Idb072ec05e66e0f10af53db8258459ad14f7f329
Signed-off-by: Bassem Girgis <brgirgis@gmail.com>
2018-10-10 00:09:22 -04:00
Bassem Girgis
9c04b1bcf7 Bug 519473 Fixed member function calling with references
Change-Id: I86d1dfacb6f842be688bfdaf2a6a0faf0ffade09
Signed-off-by: Bassem Girgis <brgirgis@gmail.com>
2018-10-09 23:57:48 -04:00
Nathan Ridge
0593f0b3af Bug 539307 - Have Codan test suites open files in C editor, not Generic Editor
Change-Id: Icce2cfafe8e516ddad6abc30505bd4c67b062f47
2018-09-30 20:25:57 -04:00
Marc-Andre Laperle
467aab5559 Bug 539307 - Set correct project nature in Codan tests to fix wrong content type
When the lsp4e-cpp plugin is present, two content types are associated with
.cpp extension. The lsp4e-cpp one is chosen because it happens to be first.
Normally, the CDT C++ content type gets its priority boosted when the C++
project nature is present. Some Codan tests run on .cpp files but without
the C++ project nature so the files are of wrong content type and the tests
fail. Once the nature is fixed, some tests were failing because they should
run on C files but loadCode was not loading them as C++ files because of the
project nature.

Change-Id: I61b77d409e81c3cf78e60adf0c77a9bf976ac9d5
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
2018-09-30 19:26:25 -04:00
Nathan Ridge
45a30f5967 Bug 539145 - Avoid NPE in CaseBreakQuickFixFallthroughAttribute.validPositionForFallthrough()
Change-Id: I8a53691f91411bf88f95112d99c1967b1238515a
2018-09-27 13:31:34 -04:00
Nathan Ridge
acca2b3b6e Bug 539145 - Avoid opening an editor during CaseBreakQuickFixFallthroughAttribute.isApplicable()
Change-Id: I82c5b345cfb017680d06f3caeff0c9839780ee68
2018-09-27 13:31:26 -04:00
Nathan Ridge
4549e7f39a Bug 538266 - NPE in QuickFixCreateNewClass.isApplicable()
Change-Id: If20b46da95f58e93ba46ea6f4386e841609f4159
2018-09-15 19:42:08 -04:00
Felix Morgner
52fab3d8af Bug 537272 - Offer "Create local variable" based on compiler errors
This patch introduces an additional message pattern for the
CreateLocalVariable QuickFix that matches GCC's C++ error message for
undefined entities.

Change-Id: I44d6579d41d9c93dc23366907fa52caf1c6f3b21
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2018-07-25 11:24:24 -04:00
Nathan Ridge
fa50ca7bc0 Bug 536268 - Find uses of overloaded operators when checking for unused symbols
Change-Id: I4445b62d4419ffa12d505bcc8265492c22f49bb6
2018-07-07 20:17:13 -04:00
Nathan Ridge
cc23d88b54 Bug 534330 - Only create an index for the project containing the TU being analyzed in CxxModelsCache.getIndex()
Change-Id: I3391e1201b51ab32c35c73cfb2f861614da07057
2018-06-26 16:51:25 -04:00
Jonah Graham
4d5204c771 [releng] Bump version to 9.6.0
Change-Id: I1618eaeab14b421155af733a73e36f6e37ea0b85
2018-06-05 22:13:24 +01:00
Felix Morgner
5ec251a791 Bug 532120: Catch by const reference ignores const placement setting
The original implementation used plain-text string manipulation of the
IDocument. This changeset changes the implementation to make use of the
ASTRewrite infrastructure, which automatically honors the const
placement setting.

Change-Id: Ib5ae9381b93ca8ab4d1ad3e16b1c3c8b1ec62d78
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2018-06-03 06:37:37 -04:00
Nathan Ridge
c8b769ead2 Bug 534332 - Add a testcase involving a function as well
Change-Id: I02c4ec4ab2ece8dee09ba6b27461dc76724ebba8
2018-05-17 20:28:36 -04:00
Nathan Ridge
45bbb2bb5b Bug 534332 - In the unused symbol checker, check for 'unused' attribute on the decl-specifier too
Change-Id: Ib4f26e5a04742af93c884819a5b2f1f714faeb97
2018-05-10 22:47:43 -04:00
Felix Morgner
47ceed3cbe Bug 525250: "Create local variable" offered outside of local scopes
When invoked from within 'isApplicable(IMarker)', 'isCodanProblem()' did
not work as expected, since it used a cached value that was only updated
in 'run(IMarker)'. The old API 'isCodanProblem()' has been marked as
deprecated and is replaced by 'isCodanProblem(IMarker)', which works
directly on the marker, instead of using a cached result.

Additionally, two new APIs in 'QuickFixTestCase', called
'calculateQuickFixApplicability()' and
'assertIsApplicableForAllMarkers(boolean)', are introduced. The former
can be used to record the applicability of the QuickFix under test for
every marker in the test code, while the latter provides a way to assert
on the applicability. For finer grained assertions,
'calculateQuickFixApplicability()' returns the calculated map.

Change-Id: I7c53fd26afefa37ff086559acea75a7a33ecd5d7
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2018-03-14 09:30:42 +01:00
Jonah Graham
3afc828ae0 [releng] Bump version to 9.5.0
Change-Id: Ie342f02f7aae633f41a7ab7d39c21e056793a04a
2018-02-13 11:25:08 +00:00
Nathan Ridge
3171322555 Bug 529383 - NPE in CheckersRegistry.getResourceProfile()
Change-Id: I376cbf44c1fd237bd75a98ffc9e1daf60f5924ec
2018-02-10 15:40:15 -05:00
Alexander Kurtakov
b4f1123050 Remove useless code.
* Else clause.
* Unused constructor in private class.

Change-Id: I51d9ac08000e9ef6364dac96e96297733335a367
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
2018-02-08 21:11:59 +02:00
Nathan Ridge
345f37874c Bug 530481 - NPE in QuickFixSuppressProblem.prepareFor()
Change-Id: Id83ce8e4cabf644b89d18a6e1c3f1199ec23396e
2018-02-05 22:51:32 -05:00
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