1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-30 21:55:31 +02:00
Commit graph

25381 commits

Author SHA1 Message Date
Nathan Ridge
88e19bfee6 Bug 408470 - Introduce static ProblemType instances for more problem types
Change-Id: Ib025e61aaf70f68bfe655527add2c441b9f647d7
2017-05-13 14:29:38 -04:00
Nathan Ridge
882f8e95a9 Bug 516291 - Improve propagattion of instantiate failures through EvalFunctionCall and EvalComma
Change-Id: Ieafe15a88c3838d15aaaf9043199ae2caf1c31db
2017-05-12 23:28:30 -04:00
Nathan Ridge
9b809b0ad7 Bug 516291 - If a function call has dependent arguments, resolve the function name as a CPPDeferredFunction even if there is only one viable candidate
This ensures that, when instantiating the function call, we get into
EvalFunctionSet.resolveFunction(), and check that the function is
actually callable with the instantiated argument types, and error out
if it isn't (which is important for SFINAE purposes).

Change-Id: Ia01755bc1a830fded1f61658f4beef875cc0b029
2017-05-12 23:28:11 -04:00
Nathan Ridge
9c0d9fec08 Bug 516290 - Correct computation of decltype(expr) for dependent expressions
Change-Id: Iabc49563e85e8649a94a77210eb066253925ea3c
2017-05-12 22:49:23 -04:00
Jonah Graham
b564575d51 Bug 314428: speedup build console - limit UI thread
Re-wrote the BuildConsolePartitioner to do as many operations as possible
in the non-UI thread and only to update the UI thread in batches.

Key changes:
- The UI thread "pulls" changes when it is ready, this means that many
  lines of output are updated in one go. This compares to the "push" that
  the non-UI thread used to do. The previous code pushed a change to the
  UI thread on every line of build output.
- The limit on console size is now soft, rather than recalcuating the
  entire document on each line (i.e. add line at bottom, remove line
  from top) the document is truncated to the limit size as it reaches
  2x the limit size. This calculation is also done more effeciently by
  tracking the number of lines each partition contains rather than
  recalculating them.
- Folded most of the implementation of BuildConsolePartition into
  BuildConsolePartitioner. This is because the partioner has a global
  view and is much more efficient at determining if adjacent partitions
  can be combined. In addition, rather than having the complexity of
  splitting partitions that were too long, instead make sure we don't
  create such partitions in the first place.

Change-Id: I47543db3fef754e779684cae44d3316982f1bc0a
2017-05-12 11:51:08 -04:00
Jonah Graham
f14ee6a61d Bug 314428: speedup build console - better handle duplicate markers
This changes the algorithm used to handle duplicate markers when build
is running.

Change-Id: I8d8b61edd80ae4da4c0e0eea3806b0efecb570e0
2017-05-12 11:50:08 -04:00
Jeff Johnston
88c6da2e40 Add seccomp:unconfined option when debugging using a Container
- current Docker daemons don't allow ptrace in the default
  seccomp profile so specify "seccomp:unconfined" when
  kicking off the gdbserver

Change-Id: I742a99221c897a553a46bc768e713d74b1fda22e
2017-05-11 21:35:56 -04:00
Nathan Ridge
b10156e36d Bug 516284 - Binding of const class rvalue to T& parameter
Change-Id: Ieb7293c20ba78611097a3d751be16fddb25f3627
2017-05-11 20:48:15 -04:00
Jonah Graham
d3ecfbd4f1 Bug 516461: use file contents to determine content type when debugging
Change-Id: I019db17522ba7eb7df979943d69df0041562eb94
2017-05-11 13:32:18 +01:00
Jonah Graham
cea32dfe7b Bug 516461: use user's/content-type editor selection
This fix applies during debugging:
1) If a user has overridden the default editor to open an IFile with,
ensure that decision is respected by the breakpoints window.
2) If a user has put a breakpoint in an external file, open the same
editor as would be opened by File > Open File

Change-Id: Id32419f1197e3a8eaebf8fad176a884464cbcf85
2017-05-11 13:31:58 +01:00
Jonah Graham
9f4feda520 Bug 516461: Make getEditorId from IDE available
See https://bugs.eclipse.org/bugs/show_bug.cgi?id=516470
This code will be removed one Bug 516470 is resolved and
available.

Change-Id: I0ba4ce121ce94c9ab31b715fbac3c92e61d9c991
2017-05-11 13:25:47 +01:00
Nathan Ridge
a0aeb9153d Bug 516385 - Only use as much space as needed for PDOMCPPAliasTemplate and PDOMCPPAliasTemplateInstance records
Change-Id: Ib8e0de13c49f715806d8c29cb4e8cf07182d5f50
2017-05-11 02:32:23 -04:00
Nathan Ridge
1594835cc6 Bug 508637 - Encode the CDT version in the value of the __CDT_PARSER__ macro
Change-Id: Ic8b571da6cf47297bb615843fab8a8d971c7c2a7
2017-05-11 02:30:12 -04:00
Jonah Graham
2f3dbb123a Bug 515296: Create all CSourceNotFound controls unconditionally
When the editor is first opened, if it is not opened on something
that resolves isDebugElement = true, the set of controls to be visible
is different. This change ensures that the same editor can be reused
between isDebugElement = true and isDebugElement = false cases.

Change-Id: I153433de1716c8c8eeffd6ec49d0b1422b04921e
2017-05-09 14:34:25 +01:00
Jonah Graham
fb8e792478 Bug 515296: Collapse empty space when buttons are not visible
With the new "Preferences" button in CSourceNotFoundEditor always
visible, under some conditions (e.g. when no debug info available)
there would be a large gap due to invisible buttons. This change
does a relayout / exclude when the visibility of the buttons
change.

Change-Id: I68ae8665c286eb41f37fa823b3d3168175140ba3
2017-05-09 14:33:05 +01:00
Jonah Graham
c167eeeb1e Bug 515296: Cosmetics.
Change-Id: Ida4c6b477a7fec2d5a5696f456ed5ce993ba6ece
2017-05-09 13:49:35 +01:00
Yannick Mayeur
832f7f5a47 Bug 515296: Changed the message when only Address
When the Source Not Found Editor opens with only an address, the message
is changed, to confuse the user less.

Change-Id: I1dcc9fae80d20975b00d2d356469ddda8c2d8d2b
Signed-off-by: Yannick Mayeur <yannick.mayeur@gmail.com>
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
Also-by: Pierre Sachot <sachot.pierre@laposte.net>
Also-by: Jonah Graham <jonah@kichwacoders.com>
2017-05-09 11:39:06 +01:00
Nathan Ridge
60503efc58 Bug 512932 - Improve type checking of GCC builtins
Specifically, this patch:

  - Adds support for a new builtin, __builtin_assume_aligned.

  - Models __builtin_constant_p as a function instead of a macro.
    This inhibits constexpr evaluation, but allows for correct
    type-checking.

  - Diagnoses misuses of known builtins, instead of ingoring them like
    unknown builtins.

Change-Id: Ie5a26f2010dc5b19e6f32a8c6a1237fe88da393e
2017-05-08 23:04:17 -04:00
Jeff Johnston
ca29390671 Bug 459197 - C++ Unit Testing does not work with QT5
- change default behaviour on unknown tag to be just to log
  the unknown tag instead of throwing exception

Change-Id: Ia8880622ec3791ba546384edf536951b2c8c1edc
2017-05-08 17:52:18 -04:00
Jeff Johnston
26f81215ac Fix sonar plug-in version due to problem with most recent version.
Change-Id: Id4d6c41019adc633aeef668c89af9f9c1995e832
2017-05-08 17:03:07 -04:00
Rolf Bislin
a583190f52 Bug 514685 - codan: handle fallthrough attribute
and provide quickfix for adding fallthrough attribute
and add JUnit Tests
and add StandardAttributes class

Change-Id: I8cf0238771dc92bd1784b9dfb35a680d078b1db6
Depends-On: Ic09aa96f896b0a5dd998156e05930704775f695b
Signed-off-by: Rolf Bislin <romibi@bluewin.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-08 13:25:15 -04:00
Thomas Corbat
0f27b20848 Bug 516298 - Improved recognition of [[noreturn]] attribute
Change-Id: I275f0ee38045600c104d5ed7e2c14fec04eac046
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-08 13:23:13 -04:00
Rolf Bislin
fb898b6088 Bug 514684 - call writeAttributes on more Statements
and added JUnit tests

Change-Id: Ic1638e9d125f1897bddd6ef9d4a91f3186ad9dc6
Signed-off-by: Rolf Bislin <romibi@bluewin.ch>
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-08 13:22:37 -04:00
Jeff Johnston
ec4e410c8b Bug 459197 - C++ Unit Testing does not work with QT5
- remove "-flush" from 
  QtTestsRunnerProvider.getAdditionalLaunchParameters which does
  not work on Qt5
- add support in QtXmlLogHandler to support QtBuild and Duration
  nodes (for Duration node store the duration time in the model)
- fix typo in QtTestsRunnerMessages.properties file

Change-Id: I3ae8a8cba6870857f2a779e317465573387c0dee
2017-05-08 11:07:46 -04:00
Marc-Andre Laperle
9280202a2a Update outdated Maven plugin
Change-Id: I292e8ddf64db660f89535f5fe9e8e0b6792bd214
Signed-off-by: Marc-Andre Laperle <marc-andre.laperle@ericsson.com>
2017-05-08 10:05:39 -04:00
Jonah Graham
655e32bfa9 Bug 516300: Display extension message when creating marker message
Change-Id: I6024d09646fd3f9d828a71f048fcb93fd34ef579
2017-05-08 07:20:30 -04:00
Jonah Graham
2e71430043 Bug 516300: Fix API errors with Eclipse 4.7
- Adding default methods can now be ignored
- Adding fields is now an error but we probably want to ignore this
because it is quite restrictive

This is the same API settings as was applied to org.eclipse.cdt.dsf.gdb
in 02a04cebad

Change-Id: I31559a8a3644c61e415dfbdf6dda3c66fb1d42ea
2017-05-08 06:09:19 -04:00
romibi
5d9dd823fa Bug 514684 - call writeAttributes on more Statements
and added JUnit tests

Change-Id: Ic09aa96f896b0a5dd998156e05930704775f695b
Signed-off-by: romibi <romibi@bluewin.ch>
2017-05-08 02:39:13 -04:00
Nathan Ridge
c22ccedea2 Bug 512932 - Check for standard conversions in CPPEvaluation.maybeApplyConversion()
Previously, we would just assume that if there is no user-defined
conversion involved, the evaluation successfully converts to the target
type.

This increased strictness exposed a couple of other bugs related to
evaluations, which are also fixed in this patch.

Change-Id: I8c40114da341d95b38f1ecc386e875badfe9f8c6
2017-05-07 18:40:25 -04:00
Nathan Ridge
432c3eaa04 Bug 512932 - Do not perform extra type manipulations in EvalMemberAccess.computeType()
The manipulations removed in this change have no basis in the standard,
as far as I can tell by looking at [expr.ref].

Change-Id: I4fc8c342b590dbeb5a876543f736934c162034cc
2017-05-06 00:02:33 -04:00
Nathan Ridge
d4841209b5 Bug 515343 - NPE in NamespaceHelper.checkFileNameAndLocation()
Change-Id: Id281e1cd8ec189e214dcfeffb6d238b66c87050e
2017-05-05 23:59:58 -04:00
Jonah Graham
121d748c2c Bug 516053: Enable extending of MIBreakpointsManager/Synchronizer
This involves API improvements and documentation to allow extenders
to extend these DSF services.

Change-Id: Ieb87a6fca757794c9f950d610bb6999e8a86e30d
2017-05-05 09:51:19 -04:00
Thomas Corbat
5dff17514c Bug 310837 - Indexer misses changes to header in referenced project
Extended PDOMManager to update index for header files in referencing
projects


Change-Id: I5a5b364651dbb854662c31197dd7ad77f13caff0
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-05 09:44:26 -04:00
Jonah Graham
903da92803 Bug 516244: Allow subclasses to provide the current CLI context
Change-Id: I8138f16bb57433af1690dbd77a735c810cef052f
2017-05-05 09:42:33 -04:00
Yannick Mayeur
5defeb26ac Reformat the file, tabs and spaces were mixed
Change-Id: If136dc3222c23f2ed41539d25b509161a0313475
Signed-off-by: Yannick Mayeur <yannick.mayeur@gmail.com>
2017-05-05 09:32:34 -04:00
Jonah Graham
d4ecd37bb1 Bug 516053: Allow MIBreakpointDMData to be extended
New API to allow third-parties to extend MIBreakpointDMData with their
own custom Breakpoint handling.

Includes deperecating of MIBreakpointNature that was not used anywhere
in CDT except within internals of MIBreakpointDMData. It arguably
should never have been API in the first place.

Change-Id: I6bcdf2ccaa28d15835ab022648b9b4b0aa7498a7
2017-05-05 08:35:48 -04:00
Jonah Graham
a36ecd3839 Bug 516053: Allow MIBreakpoint to be extended
New API to allow third-parties to extend MIBreakpoint with their
own custom Breakpoint handling.

Change-Id: I64abfc41916a2053cfbed7e3db2357fbf2572050
2017-05-05 08:32:35 -04:00
Yannick Mayeur
bda21e55ab Bug 515703: The source not found editor now updates
I removed an if statement where the two compared items always have the same
value thus not executing the code that updates the editor.

Change-Id: I3fb43a1c84d06ce6dc92e95f6c745a4b23977f2d
Signed-off-by: Yannick Mayeur <yannick.mayeur@gmail.com>
2017-05-05 06:21:29 -04:00
Brendan Dahl
a4ed678552 Bug 513505. Escape arguments for CDT standalone.
Change-Id: I2119321ea9c4227d23b30f9177889ee24a6b5bbb
Signed-off-by: Brendan Dahl <bdahl@mozilla.com>
2017-05-04 17:10:31 -04:00
Nathan Ridge
a44996a200 Bug 513428 - Ensure PDOM implementations of IASTFileLocation.getFileName() do not return null
Change-Id: I1adb158bd8efc23300bf5c212d6ed4f532a19205
2017-05-03 11:45:26 -04:00
Nathan Ridge
917061f98a Bug 512789 - Guard against infinite recursion in TypeTraits.hasTrivialDefaultConstructor()
The infinite recursion could happen if an inheritance hierarchy has a
cycle in it, or if a class aggregates itself (both of which are invalid).

Change-Id: I99598a57982dca51acab5a1297392f04d9008aec
2017-05-02 23:01:04 -04:00
Alena Laskavaia
32c2e14b80 Fixed copyright
Change-Id: I801f28d73afeba8432283eb9b5e8de3fa9b47a32
Signed-off-by: Alena Laskavaia <elaskavaia.cdt@gmail.com>
2017-05-02 12:41:40 -04:00
Doug Schaefer
582a7c10d5 Bug 515990 - Fix constant reindexing in CMake projects
There were issues with how the Core Build calculated whether reindexing
was required due to compiler settings changes. Also if a source file
was built more than once in a CMake build, it ended up always
triggering a reindexing since the second instance looked like a
settings change. We now only use the last compile command for a file.

Change-Id: Icf2922e527ae20e0c3b0dae898d981d334013109
2017-05-02 10:14:13 -04:00
Thomas Corbat
db6790d824 Bug 515814 Copyright header for CaseBreakQuickFixCommentTest
Associated with Bug 515814


Change-Id: Id32b0e8a77a774ff8922aa289a457e4f63434ecd
Signed-off-by: Thomas Corbat <tcorbat@hsr.ch>
2017-05-01 10:09:14 +02:00
Nathan Ridge
f451a27846 Bug 515453 - Do not have CPPAliasTemplateInstance store its arguments in string form
This ability was only needed by two tests, and stringifying template
arguments is prone to infinite recursion problems.

Change-Id: I485fa09358c0569b48b6847994aed720ba969b1f
2017-05-01 02:02:37 -04:00
Nathan Ridge
87db7de765 Bug 515453 - Clear all ProblemBindings stored during ambiguity resolution
This prevents names getting incorrectly stuck with ProblemBindings
created at a time when the AST wasn't fully ambiguity-resolved yet.

Change-Id: Ibca4a774ee26c393bf2b6decb535b82a2329caad
2017-05-01 02:01:10 -04:00
Jonah Graham
6edd1c6a53 Bug 499778: Stop losing stacktraces in tests
Rather than try/catch/fail just let exception cascade so that the full
stacktrace is available in the test results.

The braces have been left in place for scoping and to minimize changes.

Change-Id: I5407829ea964f828e3f996794489a7b884de25fb
2017-04-28 21:11:27 +01:00
Pierre Sachot
10b1e6e4c7 Bug 515296: New Preferences for Source not found Editor
You now have more precise options for the Source not
Found Editor.

Change-Id: I7391e50c0a9bf7fc712a45d1946e5a24e91c4991
Signed-off-by: Pierre Sachot <sachot.pierre@laposte.net>
Signed-off-by: Yannick Mayeur <yannick.mayeur@gmail.com>
Also-by: Pierre Sachot <sachot.pierre@laposte.net>
Also-by: Yannick Mayeur <yannick.mayeur@gmail.com>
2017-04-28 12:09:18 -04:00
Simon Marchi
9462c1db24 Bug 399494 - Consider all variable objects as not complex
There are cases where we consider some variables as complex when they
are not.  In particular, if a pointer is declared using a typedef, is
will be considered complex with the current code.  This is because it
has a child (the pointed value), but CDT doesn't know it's a pointer.

One of the consequence is that we assume the value is not modifiable.
Therefore, we won't update its value when it changes, and we won't let
the user edit it.

Initially I thought it would be safe to assume that variables with two
or more children are complex, but pointers to structures have as many
children as the structure has fields.  Therefore, a pointer to a
structure, declared as a typedef, will still be wrongfully considered as
complex.  Since there's no easy way to know for sure whether a variable
is complex, just assume everything is simple.

I added a test to verify that the value of a pointer declared using a
typedef will update correctly in CDT as it changes in the program.
There are two distinct scenarios, pointers that are variables and
pointers that are fields of structures.  Instead of adding content to
testUpdateOfPointer, I decided to make a similar test method,
testUpdateOfPointerTypedef.  The original test method was getting too
long and was difficult to follow.  I think it's good to keep them short
and focused.

Another test verifies that the same kind of pointer can properly be
written/modified by the user.

Change-Id: If43b3b6e49cd4a20ea929c2a096745a32de14cd0
Signed-off-by: Simon Marchi <simon.marchi@polymtl.ca>
2017-04-28 10:59:24 -04:00
Jonah Graham
fe3dc4a3de Bug 515754: Remove no longer used Buckminster build system remnants
Change-Id: I44df28bf15a2ba69d5f4e55305bb65db4c2cbe46
Signed-off-by: Jonah Graham <jonah@kichwacoders.com>
2017-04-28 04:05:20 -04:00