Allows the GNU tool prefix to be specified by a CDT build variable.
Modifies the Cross GCC toolchain description to provide the GNU tool
prefix.
Part of #361
Update getReplaceKeys to allow for patterns with matching start and end delimiters. Previously, `%%key%%` would throw and OutOfBoundsException instead of matching the key inside the delimiters.
In this case member variable declaration would be longer (including
trailing semicolon) but it is not valid since a class C shall not contain
a non-static member of class C.
Detect if function set failed to resolve while instantiating for template-id
which still has dependend arguments. Since resolution still can succeed later
via ADL when template-id is fully instantiated, do not error out immediately
and return original evaluation to allow trying to instantiate later.
The long deprecated for removal navigator view has been removed
from upcoming Eclipse Platform.
I don't know if there are other locations in CDT that are affected,
but this change covers the compilation failure of the removal.
xref: https://github.com/eclipse-platform/eclipse.platform.ui/issues/644
* Issue Issue #167 was partly solved by PR #192 (commit 7911ac8a2b).
This change fixes the problem that after closing and opening a
Makefile project the wrong build output location was used for the
default Run configuration.
The cause was that StandardBuildConfiguration.buildContainer was
null after opening the project.
Fixes#167
Currently CDT would return empty CompositeValue if recursion creating for class
type is detected. If this happens inside CompositeValue.computeForFunctionCall()
and class type has fields, this leads to an attempt to assign a value to
non-existent index into empty values array.
Fix this by returning usual IntegralValue.UNKNOWN and additionally checking
whether created value is actually a CompositeValue instance.
A follow-up change to bug 509898 missed actually incrementing the counter,
restore it now.
Fixes: 5462bac381 ("Bug 509898 - IndexFileSet.containsDeclaration is slow and is causing UI freezes")
One of Qt sample snippets contain (...) as placeholder for actual user code.
Parsing that leads to invalid class cast because buildExpression would return
fold expression token marker and not a proper ICPPASTexpression.
Fix that by handling this error early as invalid fold expression.
Currently CDT evaluates result type of comparison ops to the converted type of
their operands. When floating point values are compared and then the result is
binary shifted this trips an assertion trying to promote floating point value.
Fix this by limiting operand types of binary shifts to integral or unscoped
enumerations. Additionally fix return type of comparison op to be boolean value.
When we update Tycho we pull in a new version of ECJ which means
we can get some differences in the class files even though
there is no difference in the source. This commit bumps
all the bundles that are affected by this.
This is kept as a separate commit from the Tycho update
because if we need to revert the Tycho update we would still
need to bump all these bundles to make jgit timestamp qualifier
happy.
Part of #320
See also #308
If parsing expression part for an alternative terminates with BacktrackException,
selectFallback() would short-circuit to the longest remaining variant. If that
happens to successfully complete parsing till the end of expression token
sequence, all of remaining variants are discarded, including the first found
alternative which was to parse identifier as template name.
This causes expression() to only consider one branchpoint out of all possible
variants. Allow it to find more variants by scanning through all branchpoints
looking for the alternative with leftmost parsed boundary.
This is probably still not ideal but fixes this common std library construct:
template <typename T>
inline constexpr bool X = true;
template <typename T>
inline constexpr bool Y = true;
template<typename T> bool predicate() {
return X<T> && Y<T>; // CDT finds this one: (X) < (T) > (&&Y<T>)
// Fix it to also consider (X<T>) && (Y<T>)
}
Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=497931
Simplify parser by deferring fold-expression op token check until complete
expression can be examined.
Binary expression builder already produces a chain of BInaryOperator with
cast-expression objects. Use that to restrict valid fold-expression sequence
to the one containing only cast-expression on sides.
Currently type of parameters of instantiated template function is ignored while
preparing activation record, which makes constexpr evaluation of instantiated
body use types of arguments in function call expression instead:
template<typename T> bool f(T t) { return t > 0; }
t<unsigned int>(-1); // CDT returns false because conversion is not done
Fix this by applying EvalTypeId to argument if cost of standard conversions is
Rank.CONVERSION to make sure createActivationRecord() would populate activation
record with argument values matching template parameter types.
PR #234 had a compilation error once it was rebased which
wasn't identified until after it was rebased and merged
to main causing build to fail.
This PR is to fix that rebase error.
C++ parser methods already store current lookup point which makes AST available
via thread-local variable. Do the same for C parser to enable SizeofCalculator
accessing type size macros via AST while processing C code.
The field implies that the fSourceViewer has a longer life
than it does. But reality is that the viewer is only
valid until the editor gets reopened while the test is
running.