I initially applied a fix only to alias declarations by parsing it
before the type-id but to my surprise __declspec works more widely as a
type-id specifier.
Change-Id: I50217e2453f888207b73fc3f4c7ff1ea67bf5937
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Always initialize fTraits. Also, prevent computeLLDBVersions from
spawning processes repeatedly by early returning. This means we also
populate fTraits only once and don't need the early return and
initialize it there.
Change-Id: I04b9af0b187fe8564bf7ce67f1322eee2d360033
Starting with C++11, a null pointer constant has to be specifically an
integer literal of 0 and not any constant expression. Before this
change, an expression like (0 & 1) would wrongly being considered a null
pointer constant. It also means it could implicitly convert to a pointer
type (like int *) and lead to problems during function resolution, like
ambiguity.
This change corrects the behavior for C++11 by tracking whether the
integer type (basic type) came from a literal expression so that we can
add this additional constraint when checking for a null pointer
constant. Because types are sometimes returned directly when evaluating
different kinds of non-literal expressions that contain literal
expressions, we have to be careful that we remove the flag that tracks
"from literal expression".
Unfortunately, the semantic code does not track the active C++ version
which means the behavior for pre-C++11 will be impacted. Tracking the
active C++ version would not be trivial and at least the new behavior is
more future-proof.
Change-Id: Ied625e96e70390872e36ab5bb4dc238d75809d2e
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
When the options are applied in performApply, the call
DocCommentOwnerManager.setCommentOwner causes to set the
CProjectDescription, which causes UserDefinedEnvironmentSupplier to
flush cdt.core preferences. Then DocCommentOwnerArea.apply populates the
preference storage, but the preferences are not flushed after that
therefore the new options values only exist in memory.
Swapping the calls of DocCommentOwnerManager.setCommentOwner and
DocCommentOwnerArea.apply works but it makes no sense for the flushing
of Documentation options to depend on UserDefinedEnvironmentSupplier
flushing the preferences - it would work by a lucky accident.
A clean option would be to go through the preference's page
IWorkingCopyManager but this would involve a lot of more risky changes
in the DocOwner/Doxygen code and a vast majority of CDT code does not do
that.
Instead, this change explicitly calls CCoreInternals.savePreferences
which flushes the preferences, just like Indexer options does.
Change-Id: Id9a57cde47794f57f26ae295ec01eeb1df9aa120
Signed-off-by: Marc-Andre Laperle <malaperle@gmail.com>
Most of the tests in this bundle already had this bit of code
before calling create project. This makes BuildDescriptionModelTests
consistent with the rest.
Note that this modifies global state and does not restore it. However,
as that is consistent with the other tests in this bundle, and the
global state is only maintained while running tests on this bundle,
I am not fixing this aspect of the code.
Change-Id: I2004af177a959e1efbd45b23c960b517d8993b7c
There is a bug in SWT on macos - Bug 568777 - with the cache of single
character drawStrings with transparent backgrounds as a performance
boost. This causes the terminal to draw some characters in the
wrong color.
The workaround is to not draw with transparency, which should be fine
because we just filled the background with the same color that the
1 character string will draw with.
The performance, measured with TerminalTextUITest in Fast mode with
no throttling, does not seem affected and in my testing there does
not seem to be any graphic side effects.
Change-Id: I1b0aadae100d81a8f4533ba73273ccc8202e068f
This simplifies error handling as once you have a Charset you don't
have to worry about whether or not an UnsupportedEncodingException can
be thrown anymore. In addition it is a little easier on type safety.
Change-Id: I4292878a7c621f9d05fdb98f5c26a0ae8bfec062
This removes a TODO in the code that makes no sense, and in
most cases the else branch is not taken as a common operating
mode is the default charset/encoding is windows-1252 but the
current charset is utf-8.
The effective difference between the two branches is that
the else does a flush after character rather than after each
string.
Change-Id: I50b3cc5837d783ba20b88c2efa44d9c4e6381d30
The PTY, in case of ConPTY, operates always in UTF-8. This is suggested
back to the user with a decorated combo if they try to change the default.
Change-Id: Iaf4c13e256ea7ee3469eecab4a0ec3df1ceb19a4
Without this bump, Eclipse PDE can assume the contents hasn't changed
so will use the wrong baseline.
Change-Id: I02706b1277f9cfdd664c70b76832d6616e0fbf47
While most of these commands don't actually have spaces in them, or
their arguments, avoid the deprecated methods.
Change-Id: If7b4324695699d5a6d9a2f8a979657977486d8a4
Some of these commands work "by accident" on Windows, but there are lots
of special/corner cases that may not. On Linux they almost certainly
never do the correct thing when spaces are in arguments.
(follow up for 1557c2c4f5)
Change-Id: I126d60423b0e4ff6d9d240d7de2c1a4905763415
org.eclipse.cdt.debug.gdbjtag in the root pom.xml is explictly excluded,
but it seems that the local exclude is needed too:
bc9ecdad17/pom.xml (L739)
Change-Id: Ib7489d8ac1feff5f5ec8542dfabdcba00b620ca7
Other dependencies, such as platform may be updated later in the
dev cycle to increase CDT's minimum dependency version to the 2021-06
or even later releases.
Change-Id: Ib6386dca74f9e1327f2f7beae0adf13f54e668f3
Improvements in SyncUtil's addBreakpoint and runToLocation
methods to make them support hardware breakpoint
Change-Id: If358bf11cab426f48edb8854e9ece911c2839815
Signed-off-by: Abdullah Khalid <abdullah.dev0@gmail.com>
The "eclipse.launcher" property is available when using the eclipse
launcher. If the headless builder app is launched without the eclipse
launcher, fall back to generic "PROGRAM".
The property is not available when running eclipse in runtime mode!
Contributed by STMicroelectronics
Change-Id: If2c99a234fd841451af05e3635d44fe2967c9537
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
When starting on older versions of Windows ensure that WinPTY continues
to be used by catching all the types of exceptions that may indicate
that ConPTY is not available. This change catches all Throwables as
we want to know about all RuntimeExceptions and Errors
Change-Id: I7524d9286efe9296f1bb44311c4a3be1e5195c14
Memory region may change access rights during the execution time. For
example, in embedded, a memory location might be clocked or not clocked
depending om some SFR. As the region can be changed during the
execution time, it's not enough to use the initial flags.
Contributed by STMicroelectronics
Change-Id: Ida4d6ed69faf3fb6e515aa0a29fa90ea241135dc
Also-By: Anders Jansson <anders.jansson-ext@st.com>
Signed-off-by: Torbjörn Svensson <torbjorn.svensson@st.com>
Some of these commands work "by accident" on Windows, but there are lots
of special/corner cases that may not. On Linux they almost certainly
never do the correct thing when spaces are in arguments.
Change-Id: Idce714da9c1d6ac7a67dc174d5b30bf619534c53
In Bug 466650, the git bash detector was removed from startup to reduce
overhead on startup. Later during a rewrite it was added back in under
a different code path for Bug 473107. In the context of Bug 573712
which is going to add more detectors that may do much more work on
a full load, reduce the amount of work needed to do the presence check.
Change-Id: If1ae3f12ec51b1edc2d419f0efd89fed81a7b56e
The code was not very extensible and the main purpose of the bug
is to add additional detectors. This first commit refactors
the code to make that easier, and to provide a platform for
what could become an extension point.
Change-Id: I5ce514eda11f2573098d6e16663e324954da961b
There are lots of bugs in WinPTY, while upgrading WinPTY would
resolve some of them, there are others that are unresolvable. See
https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/
for a backgrounder on the general subject.
In this first version ConPTY won't be enabled by default, it requires
system property
org.eclipse.cdt.core.conpty_enabled=true
to be set. i.e. start Eclipse with:
-vmargs -Dorg.eclipse.cdt.core.conpty_enabled=true
In a future version the default will change to on if available,
so to force it off use:
org.eclipse.cdt.core.conpty_enabled=false
Change-Id: Ib2df0095027c23f20daa6aa044d9e5f0b0443164