- change ToolChainManager so that when creating the types map for
the first time, make it a LinkedHashMap instead of HashMap so
order of input is preserved (first in = first out)
- fix GCCPathToolChainProvider so that it adds non-tupled gcc
to the ToolChainManger before adding any tupled version
Change-Id: I84602a98dd4949a2f9847d4e72c428cdedd60688
- fix CBuildConfiguration processLine() to call new stripArgs()
method to parse the command arguments into separate argument
strings and recognize quotes
Change-Id: Ifd0e1c1204b1b5d04498fdee202253f26283a2f5
Direct calls to CPPTemplates.createSpecialization() bypass the caching
mechanism, resulting in the violation of invariants such as every
binding being represented by a unique (AST-derived) binding object.
ICPPClassSpecialization.specializeMember() should be used instead.
Change-Id: I10ddb06d087d97cf05c6bed0d9f14a15440b87fe
EvalFunctionCall.fImplicitThis is sometimes redundant in that the
owner evaluation is already stored by one of the arguments. In
such cases, storing the owner separately in fImplicitThis can lead
to exponential complexity in chained method calls.
We resolve the duplication by computing the implicit this from the
function name evaluation instead of storing it where possible.
This was already implemented for cases where the function name
evaluation is an EvalMemberAccess in commit 659ff8c4a7. This
commit extends the approach to cases where the function name
evaluation is an EvalID.
Change-Id: Ic71e81b4692c51ffb8e15b3da9fc2dff1a554f05
When a subsequent regular (non-friend) declaration of such a class
is indexed, the index binding needs to be marked as being fully
visible to name lookup.
Change-Id: I1a625f93eda1af257a9af50b5c4f115fc9bf6526
The first patch for bug 527697 made us not instantiate such an
argument, because determinePackSize() would return PACK_SIZE_DEFER.
The motivation for that fix was to avoid sizeof...(T) prematurely
instantiating to a concrete value in cases where T was mapped to
a pack expansion.
This patch reverts the change to determinePackSize() and applies a
different fix for the sizeof...(T), specific to EvalUnaryTypeId.
Change-Id: Idc231aeecb5d50e93dda364c6d2deb08057cc8b6
- default environment using EnvironmentReader in
CommandLauncherWrapper class in CommandLauncherManager
if no environment set for wrapper to match behaviour
of CommandLauncher
Change-Id: I71ff37b3d8f2049dc705e97bf28f939ac78bd390
This avoids expontential complexity when type template arguments inside
an ambiguous name specifier themselves contain ambiguous name specifiers.
The patch also enhances TemplateIdStrategy to allow marking and backing
up to a branch point, and uses this ability in templateArgument().
Change-Id: Ia03e9cd0bc026b02b85edc05ed327cce883d6a59
- revert part of change to LanguageSettingsEntriesTab languages
column (this was done to get around gerrit issue and is not needed)
- change to entries column is left intact
Change-Id: I1704c18f99d0fe76411783a684da790022eb4643
- fix provided by Christian Walther
- fix methods to use addTreeListener() instead
of addPaintListener() to handle resizing
- in TreeListener, define treeExpanded method which uses pack method
for entries column
Change-Id: I28db2059d3e0561ce9e5e52f569409de9aff9a6d
The special binding type CPPLambdaExpressionParameter is removed.
Instead, a lambda expression parameters's are represented as
regular CPPParameters owned by the closure type's generated
function call operator.
Change-Id: I4afeac90c2595a1f84dfa59f057d0494b64d079c
The pseudo-destructor is represented as a CPPImplicitFunction, computed
lazily and stored by CPPBasicType.
This commit also adds support for alias templates to
CPPTemplates.getTemplateName().
Change-Id: I6774556b2493cb68d32c3007d6ce48c7805595f4
Previously, we would only try the first base class whose primary
template matched that of the parameter type.
Change-Id: I0511e6a1ba1c7197887ff23bc37b70a2a820eb87
Move Toolchains directly under C/C++ and rename to Core
Build Toolchains. Add a label describing what the toolchains
are for in hope of avoiding confusion with managed build.
Also move Qt into C/C++.
Change-Id: Ia1d76087c65b26562d1001243ea355c7ac32365e
- Add volatile variant for __atomic_clear and __atomic_test_and_set
- Add missing parameters for __builtin_fmax and related
Change-Id: Ib31d1a410b8749f5672d70d7d02ca1dff962c38b
Signed-off-by: Martin Oberhuber <mober.at+eclipse@gmail.com>
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>
When deleting projects then creating them with the same name
the scanner info didn't get cleared up and was reused. We
were deleting these files from the wrong path.
Change-Id: Ieda174b7cfc9690ab51be65e674bda321cb3bc10
We were missing the dialog to ask if you wanted to continue
after build errors in a project. We were missing the method
that provided the list of projects to do that check.
Also while testing that noticed the handling of the build
and clean command UI was broken with make projects.
Change-Id: I698e151672a114bb22c815f49d362b6413b9c315
The call to CDTBuildAction's super updateSelection method
clears out some state. Make sure we call it even though we
want to always build CDT projects.
Change-Id: Ie5dc1f583bbcc04d85b7254a4b7c18ee50f02997
If you select a non-CDT project then select a CDT one, the
Build Project menu item wouldn't enable. If you select the
CDT project again, it does. Big question is why isn't it enabled
when selected.
This fix just enables it all the time. Much easier for users
to understand.
Change-Id: I674740f2c6998686cade1f910a269a4e9d935d39
Makefile projects depend on build output parsing to pick up
compiler options to use while indexing. Sometimes, that just
doesn't work. As a back up we've always allowed users to manually
add them to the project. Long ago when we had pure make projects
we had UI for this. This change hooks that old UI up. It was a
time before build configs so they get applied to them all but it
serves it's role as a backup when users run into problems.
Unmarked everything I use here from deprecated until we decide
how to replace these with Core build config aware settings.
Change-Id: I6fc4d48e5315df3c60c7591b026ae0a53a1f505e
Also set BUILD_MODE to the launch mode so the makefile can do
different things based on the mode. Change template to add -g
option for debug.
Also fix a deadlock I detected due to side affect build folder
creation.
Change-Id: Ic7b13ba3238e6ef201cccb1b2bfc8dcc6956ea3a
The previous implementation deviated from the C++ standard by checking
that the types of the return expressions are the same, rather than the
return types after deduction against the placeholder type.
There was also a bug in the return type deduction code for lambdas,
where for a lambda without an explicit placeholder in the trailing-
return-type, the deduction process wouldn't be performed.
Change-Id: I2f0b9f1c7778aef60e4cd7ada9386b99be52669a