1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 06:32:10 +02:00
Commit graph

13984 commits

Author SHA1 Message Date
Hansruedi Patzen
5c5ce995f6 Bug 534813 - ASTWriter swaps noexcept and pure virtual specifier
Fix and test

Change-Id: I14088e69aed829940fb1e9f5197dedf18d9bb7a5
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2018-06-03 04:43:08 -04:00
Hansruedi Patzen
7b53e75fb2 Bug532849 Inline namespace not recognized by formatter
Change-Id: Ie7f13884967685fcc93c8af3955d90825d6f9879
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2018-06-03 04:40:58 -04:00
Hansruedi Patzen
278979870c Bug 534808 - static_assert without message not recognized (C++17)
Fix and test

Change-Id: I785ecfd0715f1fa8ff86b87bd01d16ac6d5d5da2
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2018-06-01 16:22:37 +02:00
Hansruedi Patzen
f65fa5b7c5 Bug 535196: [C++17] Support *this in lambda capture
Implementation and tests.

Change-Id: If32911514eb62078215b5f06be12289fa571e9a3
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2018-05-29 08:24:51 +02:00
Jonah Graham
ab02462cdc Bug 519391: Only redraw the changed lines
When a line is double-clicked, or the highlight error is otherwise
changed, the redrawing of the highlighting was done by redrawing
the entire build console document. This was slow on very large
documents. Instead only redraw the line losing the highlight (if
any) and the line gaining the highlight.

In addition, as we only change the foreground colour to highlight,
avoid redrawing the background.

Change-Id: I5e652449715a588cb8702e0100a472d1f566e2a8
2018-05-28 19:49:29 -04:00
Jonah Graham
d462ce74ff Bug 519391: avoid iterating and copying large lists
The BuildConsolePartitioner used to compute partitions from offsets
by iterating over the list of partitions. This strategy is fine
for small build outputs. But outputs in the 100,000+ line range
can have huge number of partitions. This commit updates the logic
to take advantage of the fact that the partitions are sorted
and contiguous to do binary searches to find the partition, and
uses a new method (computePartitioningAsList) to use a view onto
the original partitions list instead of significant copying.

Change-Id: I4395df36431a6ae45e6b77d6f76fd29532347ac5
2018-05-28 19:49:16 -04:00
Hansruedi Patzen
957dae8f4e Bug 413527: [C++14] Support Lambda init-captures
This patch adds parsing and semantic support for lambda init-captures.

Change-Id: Ia5f39ea6f8780ecd6a9685f432bcbdf39e09c82a
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2018-05-28 18:30:30 -04:00
Jonah Graham
74c80478d9 Bug 534332: Mark long deprecated interfaces as noimplement/noextend
Change in super-hierarchy caused API breakage. As these interfaces
have long since been deprecated, rather than adding default methods
for them, simply mark them as noimplement/noextend. The implementation
in CDT already has the new effective method - getAttributeSpecifiers() -
implemented.

Change-Id: I252fdeb33c0edcbe73338dc6fca477201bd4d468
2018-05-28 17:25:52 -04:00
Jeff Johnston
ce857c058c Bug 535139 - Container target set-up causes NPE
- add null check before accessing ordered tool chains

Change-Id: I713a55f8e887b642aa4a159e59c454de9a97955a
2018-05-28 13:42:51 -04:00
Hansruedi Patzen
dd5c8726a7 Bug 527954: [C++14] Syntax error when parsing complex udl ""if
With this patch we allow any keyword to be used as a UDL operator, which
for example GCC compiles fine with. They are then no longer highlighted
as keywords but colored the same as normal text. This can be overridden
by coloring overloading operators differently.

Change-Id: If80faf0f3dc599ab4f12fe98977c556aaaefe6aa
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2018-05-24 18:52:08 -04:00
Vlad Ivanov
809aa57076 Bug 519361: wrap template<auto> types for better type resolution
https://bugs.eclipse.org/bugs/show_bug.cgi?id=519361#c28

Change-Id: I0a2f5479bb853ca26156be5b22673abdc158efab
Signed-off-by: Vlad Ivanov <vlad@ivanov.email>
2018-05-17 19:57:08 -04:00
Nathan Ridge
e533381b75 Bug 534126 - Cache instantiations of alias template instances
This avoid runtime that's exponential in the nesting depth of
alias template instances.

Change-Id: Ibde6a6d98753df54e8e495a8b4547a90e8313191
2018-05-11 00:02:02 -04:00
Nathan Ridge
d8d04e2731 Bug 534332 - Allow C decl-specifiers to store attributes
The parser already accepted this, but the attributes were not stored
in the AST.

Change-Id: I7118eaff9dd150f15885f0aabb8a3b5e707394b0
2018-05-10 22:47:34 -04:00
Nathan Ridge
3ad16b909c Bug 534189 - Do not wait for the editor's shared AST to generate parameter guesses
We want to hold the index read lock while generating the guesses, but we
don't need an AST; we already have the one built for content assist.

Change-Id: I5a60aaca24ce345f5ae387664e025e6fa39cd9d2
2018-05-10 22:44:54 -04:00
Vlad Ivanov
0bf58281c2 Bug 519361: use placeholder type for template<auto>
Change-Id: I40f96479148a92618050ba50d7761f478f92024d
Signed-off-by: Vlad Ivanov <vlad@ivanov.email>
2018-05-08 03:32:11 -04:00
Nathan Ridge
d7c4642ab8 Bug 534098 - NPE in VariableHelpers.createType()
Change-Id: I0b287d31dba8075d8e99f74d6815d3018c985bc7
2018-05-03 23:38:03 -04:00
Vlad Ivanov
ac0e24da56 Bug 519361: try to deduce the type of non-type template parameters
This commit resolves some of type resolution errors for C++17 <auto> templates.

Change-Id: Ibdd3dcc0b7740bce1d6f390d034e1ce67c27be58
Signed-off-by: Vlad Ivanov <vlad@ivanov.email>
2018-05-03 23:36:36 -04:00
Doug Schaefer
3929a1fc80 Add dynamic variable for build directory of active core build config
This will allow us to use that value in external tool launches such
as those used by the Serial Flash launch configuration.

Also removal of the missing src source folder entry in meson.ui.editor.

Change-Id: I1033bdc0c18c9822490a9b8602cef83a42f7262d
2018-05-03 18:44:46 -04:00
Nathan Ridge
e17354be5c Bug 533822 - Support void* as an argument type for the GNU sync builtins
Change-Id: Idabea11af3ae00cc9bf63070b5b211e2c1242e97
2018-04-27 02:50:41 -04:00
Jeff Johnston
a3211e7cf6 Bug 533888 - Simplify Meson Core Build to use startBuildProcess
- fix MesonBuildConfiguration to use startBuildProcess instead
  of CommandLauncherManager
- change CBuildConfiguration startBuildProcess() method to accept
  a build directory and to replace environment variables based
  on input parameter
- fix CBuildConfiguration watchProcess routines to ensure that the
  ReaderThreads have completed processing output to the console
- change StandardBuildConfiguration and CMakeBuildConfiguration to
  pass the working directory to startBuildProcess

Change-Id: Icb4f2d076f0e6bb1513b20f6f198f720eae07e51
2018-04-26 14:48:50 -04:00
Vlad Ivanov
7d9e0b0ddd Bug 519062: add support for digit separators
Change-Id: I6fa990c76395dcc6f9b0e5e05707cff03a34b8db
Signed-off-by: Vlad Ivanov <vlad@ivanov.email>
2018-04-25 22:06:39 -04:00
Jeff Johnston
b56078ed96 Bug 533842 - Fix Launchbar for enabled/disabled Docker Connections
- fix CMakeBuildConfigurationProvider to not verify if a toolchain
  file exists which doesn't occur for Container Build configurations
- add new ICBuildConfigurationManager2 interface that adds new
  recheckConfigs() method, make CBuildConfigurationManager
  implement this new interface
- add new recheckConfigs() method to CBuildConfigurationManager so
  that if a Docker Connection is enabled, the list of invalid configs
  can be rechecked and those that are now valid can be removed from
  the noconfigs list
- have ContainerGCCToolChainProvider implement
  IDockerConnectionManagerListener and register itself as a listener
  during init
- add new changeEvent() method as part of a listener that will add
  toolchains for connections that are added/enabled and similarly
  will delete toolchains for connections that are removed/disabled
- do the same with ContainerTargetTypeProvider (making it be an
  IDockerConnectionManagerListener and adding/deleting targets based
  on whether a Docker Connection is added/enabled or deleted/disabled
- as well during the init process of ContainerTargetTypeProvider
  remove any targets for Connections that aren't established

Change-Id: Id5e9415eaa770ef7f6ba1ddd11312ed003585391
2018-04-20 12:44:27 -04:00
Jeff Johnston
2e99babe5b Bug 533222 - Add Container Build support to Std Make Core Build
- add new getConsoleHeader() method to ICBuildCommandLauncher
  interface and ContainerCommandLauncher class
- modify MakefileBuildConfigurationProvider to create build
  configurations based on an Image name when building for Container
  and as well support the linux-container os that is used for
  Container targets
- add new IConsoleParser2 interface that extends IConsoleParser
  and adds new processLine method that takes a List of Job as
  a parameter
- make CBuildConfiguration implement IConsoleParser2 and add new
  processLine method
- modify watchProcess to recognize an IConsoleParser2 and pass
  a Job List then wait for all jobs to finish before calling
  shutdown() and possibly reindex
- add new IToolChain2 interface with startBuildProcess() method
- add new startBuildProcess() method to CBuildConfiguration
  to look for new IToolChain2 and use its startBuildProcess()
  method to perform the build
- make ContainerGCCToolChain implement IToolChain2 and add
  new startBuildProcess() method to build in Container
- change StandardBuildConfiguration to use startBuildProcess()
  to do build and clean

Change-Id: Icae9a55ef6abfa1b7f611544ad591b6062c72585
2018-04-16 12:10:42 -04:00
Torbjörn Svensson
864b305ff4 Bug 533379 - Only add space when appropriate
Only strings starting with "operator" should be subject to the space addition.

Change-Id: I690695e7c3385e0d4e64ddd4cbe470a20cf788d6
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
2018-04-16 10:36:56 -04:00
Nathan Ridge
fc8f2d6176 Bug 533216 - Avoid a ClassCastException in EvalBinding.unmarshal() if the parameter owner could not be stored in the index
Change-Id: Ic44495420b0489cfeb1e371e2b776b44b57895fe
2018-04-13 01:46:10 -04:00
Nathan Ridge
72d9035173 Bug 533216 - Correctly classify local types as dependent or not
Change-Id: Ie34d0540fd1efa85e29dbe525b75a35af21dc7cf
2018-04-13 01:45:57 -04:00
Nathan Ridge
ff1cfbf1d4 Bug 532905 - Implement compositing for InitializerListType
Change-Id: I9aea9b2a9fb0540f4cf9ab1f54ce0d1d17686d7d
2018-04-13 01:43:26 -04:00
Nathan Ridge
91a142fcb7 Bug 319506 - Allow renaming class via constructor
Change-Id: I3c2f3e5337c7cdea4714732580806713aa28187b
Signed-off-by: Ian Leslie <ian.leslie@lesliesoftware.com>
2018-04-08 01:17:06 -04:00
Hansruedi Patzen
54287859f0 Bug 533319: ASTRewrite parameter pack wrong pointer operators position
Change-Id: I4798afa95d66aeed04b155ccd62a2b133f579296
Signed-off-by: Hansruedi Patzen <hansruedi.patzen@hsr.ch>
2018-04-06 17:01:48 +02:00
Nathan Ridge
a10fc3eafe Bug 532781 - Ensure the model builder looks up SourceManipulationInfo for anonymous namespaces in its local cache
Change-Id: I98ff370d4cd04254d8896409455fae61182fb3df
2018-04-05 16:25:44 -04:00
Nathan Ridge
f80be34148 Bug 532905 - When throwing a CompositingNotImplementedError, include the kind of IType or ICPPEvaluation for which compositing is not implemented
Change-Id: I1414f70ae5f86263fc313f61aa36485df8c4cb3f
2018-03-30 21:08:48 -04:00
Nathan Ridge
d598331c81 Bug 532684 - NPE in PDOMMacroReferenceName constructor
Change-Id: Iea6200203350591927f505213facc9224243cc65
2018-03-30 02:02:59 -04:00
Jeff Johnston
3e60faaa6c Replace refreshScannerInfo with setActive method
- remove the refreshScannerInfo method from ICBuildConfiguration2
  but add it as a protected method of CBuildConfiguration
- edit MesonBuildConfiguration and CBuildConfiguratio appropriately
- add new setActive method to CBuildConfiguration which calls
  refreshScannerInfo

Change-Id: Iebae09507f24293007a299eea3069451e566a91b
2018-03-20 15:54:15 -04:00
Jeff Johnston
60affd8b9f Bug 532420 - Make Container Core Build indexing more efficient
- add new ICBuildConfiguration2 to keep API checks happy
- remove refreshScannerInfo method from ICBuildConfiguration and
  put it in ICBuildConfiguration2
- make CBuildConfiguration implement ICBuildConfiguration2
- update ContainerPropertyVolumesModel to use new Docker plug-ins
  using docker-client 8.9.2.
- fix MesonBuildConfiguration to use a job for each compile line being
  processed, then wait until all jobs are done before causing
  an reindex to occur (this will maximize parallelism when building
  in Containers)
- fix ContainerCommandLauncherFactory to save the project so we
  can exclude project directories when copying header files using
  the new Docker Tooling interfaces
- fix CoreBuildLaunchBarTracker to use ICBuildConfiguration2
  interface to make the call to refreshScannerInfo


Change-Id: I2138f5111614e7821e46c22731397a01035eac0a
2018-03-19 21:50:31 -04:00
Felix Morgner
fbe97a324a Bug 532227: C++17 Missing standard headers in file associations
Add the new header files introduced with C++17

Change-Id: Icb5086ff94cee309010ac0d502fba56ae3f266c5
Signed-off-by: Felix Morgner <fmorgner@hsr.ch>
2018-03-15 00:33:11 -04:00
Sebastian Focke
ebf123102f Bug 282494 - Incorrect colors in Show Macro expansion dialog in case of
dark color scheme

Setting the Macro expansion highlight to the "Find Scope" color. The
color can not occur by other means in the dialog and provides good
contrast to background and foreground colors.

Change-Id: If2182cff20f3612cff80c7fe2b250d039d45f172
Signed-off-by: Sebastian Focke<sfocke_eclipse@web.de>
2018-03-11 12:15:41 -04:00
Jonah Graham
a8af87b6ba Bug 532209: Run extensions in SafeRunners
Change-Id: Icf748b9769c7a454cf3bc4b4a27fff896ce38086
2018-03-11 12:13:39 -04:00
Chin Huat Ang
13b1894c4c Bug 531991 - Fix command launcher manager priority comparison
When iterating through a list of command launcher factory to select the
highest priority factory, be sure to compare using the last known
highest priority.


Change-Id: I473ac9c8ff7cfb5a0aa81714101a795816fd1ac8
Signed-off-by: Chin Huat Ang <chin.huat.ang@intel.com>
2018-03-07 23:50:43 +08:00
Jeff Johnston
c9822e117e Bug 531985 - Support Container build with new Core Build
- add new ContainerTargetTypeProvider to create a new target
  for each usable Docker image from known connections
- add new ContainerGCCToolChain class which supports gcc in a
  Container for projects with Container targets
- add new ContainerGCCToolChainProvider which creates a
  ContainerGCCToolChain for each usable Docker image from
  known connections
- add new CoreBuildContainerLaunchConfigProvider class
- add new CoreBuildContainerLaunchDescriptorType class
- add new ContainerTargetLabelProvider class to support adding
  a new Container target
- add new NewContainerTargetWizard and NewContainerTargetWizardPage
  to add/edit a new Container target
- add new IContainerLaunchTarget class
- add new refreshScannerInfo method to ICBuildConfiguration interface
  to allow switching ScannerInfo when target is switched
- implement default refreshScannerInfo method in CBuildConfiguration
  which currently does nothing
- add new fetchContainerDirs method to CommandLauncherManager to
  fetch container directories for a project that is using
  Core Model and CBuildConfigurations
- add new verifyIncludePaths method to ICommandLauncherFactory2 that
  takes an ICBuildConfiguration and implement this for
  ContainerCommandLauncherFactory
- fix ContainerCommandLauncher command handling to use a list
  of Strings to preserve spaces in arguments and call new
  runCommand interface in Docker UI...as well do not link
  any args that are files if they are system directories (e.g.
  /usr /bin)
- fix getCommandLauncher in ContainerCommandLauncherFactory when
  passing an ICBuildConfiguration so that it uses the configuration's
  toolchain properties to figure out if a Container build is asked for
- fix launch method of ContainerLaunchConfigurationDelegate to check
  if working directory is null in which case use the project directory
- also add buildForLaunch method override and preLaunchCheck to
  ContainerLaunchConfigurationDelegate so it can be used for
  Core Build launching as well and ensure that the project name
  and active configuration is set properly
- in CoreBuildLaunchBarTracker, use the lastTarget to set the
  active target instead of the local field "target" as this will
  end up setting a random target as the active target.  Also
  call the new refreshScannerInfo method of the build configuration
  when the active target has changed
- add ICBuildConfiguration support to Docker LaunchShortcut such
  that properties will be set appropriately and acquired from the
  toolChain
- bump up Docker launcher version to 1.2.0

Change-Id: I074b02314f6ac6942fdf230b1dc8e154ced3088e
2018-03-06 14:48:01 -05:00
Doug Schaefer
c781ba5c36 Remove wait on stop in BinaryRunner. It causes deadlock.
If we have issues with the runner while the job is trying to cancel,
we sould be address it there.

Change-Id: I2c42d654f4d08a7499c97c52fe14d76e24aa3dd6
2018-03-06 10:48:38 -05:00
Nathan Ridge
107bfee755 Bug 403153 - C structure whose first declaration is inside a structure
C does not have a notion of structure scope, so the declared structure
has file scope in spite of being declared inside a structure.

Change-Id: I39b9dfe36c7da19b70e79e0a1cd822d91832dcd8
2018-03-05 11:55:52 -05:00
cartu38 opendev
bcc81b20c1 Bug 531915: Abstract page is now able to deal with fragment icon(s)
Change-Id: I99bd52fcbc6e984e10914fc323f7af5768d7f7f2
Signed-off-by: cartu38 opendev <cartu38.opendev@gmail.com>
2018-03-02 12:01:16 +01:00
Doug Schaefer
071f118e27 Yet another deadlock in old ICDescriptor code.
Hitting this in our internal verify jobs. This invoke method locks
the element then calls removeProjectStorage which waits on fLock.
Meanwhile someone else has called getProjectData has the lock and
then tries to lock an element. Deadlock.

Change-Id: I5d013e8aa3c16e8c832fbe30b2dd3c17aeeefee5
2018-03-01 16:17:10 -05:00
Nathan Ridge
bdc212ec05 Bug 531172 - Avoid ClassCastException in CPPSemantics.declaredBefore()
Change-Id: Iddda8bab86e9567b8e0c877562b48defb187656f
2018-02-25 01:13:48 -05:00
Nathan Ridge
af73a4ed1a Bug 531475 - Push a lookup point when precomputing variable types and initial values in PDOMWriter.resolveNames()
Change-Id: Ia9d0c51a963f70d9a8b0ffcd3fa6b6c508f1d1dc
2018-02-24 02:02:33 -05:00
Nathan Ridge
3ff810915a Bug 531322 - Overloading between initializer-list and non-initializer-list constructors during list-initializations
Change-Id: I6884ce16bc0f14893f074eef27015b3654aedba5
2018-02-22 18:52:02 -05:00
Nathan Ridge
28b36d1e3e Bug 531076 - NPE in CSearchQuery.createMatchesFromNames()
Change-Id: I6614b6557c1a9152e1d8b336d1fcfdf359201fb7
2018-02-20 01:08:11 -05:00
William Riley
5728fec0cf Bug 531258 - Provide name for org.eclipse.cdt.core.cBuilder
Using "CDT Core Builder" to avoid confusion with "CDT Builder" used by
managed build.

Change-Id: Ib2556be4e53caf505fff3a697757a0979fbf08bc
Signed-off-by: William Riley <william.riley@renesas.com>
2018-02-16 10:17:09 -05:00
Karsten Thoms
dfb713b5c8 Bug 351718 - Avoid NPE when no default setting available
Change-Id: I2950bdcc30672fe3fa8e80b49f9bdeed17db5cdf
Signed-off-by: Karsten Thoms <karsten.thoms@itemis.de>
2018-02-16 12:14:56 +01:00
Doug Schaefer
45966dd76d Fix up handling of esp32 on Windows.
Need to convert paths from MSYS style to proper Windows
native.

Change-Id: I8c459274a1eb33af026c1ae383db67c8cbcdc29f
(cherry picked from commit fea65eeb15)
2018-02-15 10:46:01 -05:00