1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-13 11:15:38 +02:00
Commit graph

2859 commits

Author SHA1 Message Date
Andrew Gvozdev
993e26b0f9 bug 403406: Notification mechanism for changes to environment variables. 2013-03-16 07:21:43 -04:00
Sergey Prigogin
48c9cc0b73 Merge branch 'bug_45203' 2013-03-14 17:25:27 -07:00
Nathan Ridge
7a715b258f Bug 402498 - Name resolution error for unqualified function call with
dependent argument

Change-Id: I31b86885e2e715c38b10efeed3aef4aee1c0d249
Reviewed-on: https://git.eclipse.org/r/11073
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-13 14:00:10 -04:00
Sergey Prigogin
44d1c404f5 Added ArrayUtil.removeDuplicates method. 2013-03-12 14:54:56 -07:00
Andrew Eidsness
8883fb1af5 Bug 402177: Btree.insert returns wrong value
The javadoc for BTree.insert says "don't insert if the key was already
there, in which case we return the record that matched".

However, the implementation was returning the new record even when it
was not actually inserted.

This is a fix for the problem and a test case to demonstrate the issue.

Further Changes:
----------------
I have modified the code style as described in the comments in
https://git.eclipse.org/r/#/c/10804.

However, I'm still not sure what style is expected.  I've looked through
the CDT wiki a few times, especially the 'new developer' parts, but
haven't found anything relevant.  When I asked the question a few weeks
ago, the only reply was to use the "eclipse built-in style", which I
can't find in my preferences.  The default seems to be "K&R Style" (that
is what it is set to now, and I don't think that I would have changed
it), so that is what I've used here.

If I've missed the section in the wiki then a pointer would be greatly
appreciated.  Otherwise this topic would be a great topic for someone
that knows the answers to add to the wiki.

Change-Id: If079f235871fcdfbd35f1cba3f64cc3e33edaaec
Reviewed-on: https://git.eclipse.org/r/10804
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2013-03-12 12:24:05 -04:00
Nathan Ridge
0d2decffcf Bug 402861 - Error involving pointer-to-member of template class
Change-Id: I418b5698757650f86000c31b8b7ea12e0192fcee
Reviewed-on: https://git.eclipse.org/r/11034
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-11 14:18:27 -04:00
Nathan Ridge
c8e936ae11 Bug 402854 - Qualified name lookup finds name in enclosing scope
Change-Id: Iebf9f427b3291a1af695936055daecb5d28e56f6
Reviewed-on: https://git.eclipse.org/r/11032
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-11 14:08:57 -04:00
Nathan Ridge
072b8512ea Bug 402807 - Partial specialization for vararg function type
Change-Id: I2fa7bdede392a5b51da065d1d6196b10f2a52d6a
Reviewed-on: https://git.eclipse.org/r/11025
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-11 14:06:23 -04:00
Andrew Gvozdev
ae1e68cd09 bug 290631: Missing LSP change notification event when provider being serialized equals extension 2013-03-10 07:48:43 -04:00
Nathan Ridge
6190dce232 Bug 402409 - Dependent expressions and auto type resolution
Change-Id: Ic391705ea80adf28a4d664198c79817d54e9bddd
Reviewed-on: https://git.eclipse.org/r/11014
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-09 17:39:14 -05:00
Nathan Ridge
7f2273c8b8 Bug 402409 - Dependent expressions and auto type resolution
Change-Id: Ib4ed63ade9349c5be74305825884acac103e334b
Reviewed-on: https://git.eclipse.org/r/10957
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-08 19:38:25 -05:00
Nathan Ridge
395e7c941e Bug 402498 - Name resolution error for unqualified function call with
dependent argument

Change-Id: I7de7ea4898c91f2c994b8b19e61c4f283620620e
Reviewed-on: https://git.eclipse.org/r/10922
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-08 12:58:53 -05:00
Nathan Ridge
3df391336b Bug 402409 - Dependent expressions and auto type resolution
Change-Id: I71c8f2237bf22ffd0d9e79b15dce8cd693556564
Reviewed-on: https://git.eclipse.org/r/10839
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-06 12:56:09 -05:00
Nathan Ridge
f9f94676a2 Bug 402257 - Incorrect overload resolution with SFINAE and nested types
Change-Id: Id97160bcccaa0daaa7eaeab965cc74fe816adef5
Reviewed-on: https://git.eclipse.org/r/10811
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-03 21:35:16 -05:00
Nathan Ridge
5eb0fb0451 Bug 402085 - UnsupportedOperationException in
ASTAmbiguousNode.getEvaluation()

Change-Id: I0ccad524d9ca717fd7a68fc571baf704159760ab
Reviewed-on: https://git.eclipse.org/r/10767
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-03 21:33:50 -05:00
Nathan Ridge
ec7a25ee6d Bug 401743 - NullPointerException in EvalBinding.instantiate() - tpMap
is null

Change-Id: Ie33a99c582adccb44152033ca29ba0b88b5823ad
Reviewed-on: https://git.eclipse.org/r/10805
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-03 20:39:00 -05:00
Nathan Ridge
664da44695 Bug 401973 - sizeof... operator on a template parameter pack
Change-Id: Ia502928ddf8fc2003f3a034ef13d38622ad9f0b9
Reviewed-on: https://git.eclipse.org/r/10803
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-03-03 19:37:34 -05:00
Sergey Prigogin
52c0edd492 Revert "Bug 401743 - NullPointerException in EvalBinding.instantiate() - tpMap is null"
This reverts commit 773aa77a2a.
2013-02-27 15:49:15 -08:00
Sergey Prigogin
ba6c3f6316 Cosmetics. 2013-02-27 12:25:14 -08:00
Nathan Ridge
96a4a227aa Bug 401479 - Error involving variadic templates and function objects
Change-Id: Ie4fcbc1a14d9a3b034789b3dd5c2b24dd05c196d
Reviewed-on: https://git.eclipse.org/r/10578
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-27 14:51:06 -05:00
Nathan Ridge
773aa77a2a Bug 401743 - NullPointerException in EvalBinding.instantiate() - tpMap
is null

Change-Id: Iea69ddf7f1872f0e1b0a918faed400b6d5d4f2f7
Reviewed-on: https://git.eclipse.org/r/10641
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-27 14:25:47 -05:00
Andrew Eidsness
6c6ab24c23 Bug 400020: Allow tagging of IBindings
Addresses review comments from https://git.eclipse.org/r/#/c/10648.

Fixes the junit problems by making sure that the dummy PDOM acquires its
write lock before calling exercising the tag index.

Original commit message:
This new extension point allows contributors to put their own
information into the PDOM and to later retrieve it for their own
purposes.

There are many details in the bug.  The idea is that contributors
provide an implementation of IBindingTagger, which is given a chance to
examine IBindings when they are created.  The ITagWriter interface
allows the contributor to create a new tag which can then have data
written to it.

The ITagService interface (accessible from CCorePlugin.getTagService()
provides a way for the contributor to later get an instance of
ITagReader to retrieve tags from bindings.

ITags are copied to the PDOM when the associated binding is persisteed.

Contributors use a unique id (based on their plugin id), so that
multiple contributors are able to independently tag a given binding.

In-memory tags are not cached.  I've done some timing tests using my
sample implementation and found no measurable difference.  The full log
lines look like:

	!MESSAGE Indexed 'simple-01' (2 sources, 184 headers) in <see below>
sec: 21,550 declarations; 35,394 references; 0 unresolved inclusions; 1
syntax errors; 0 unresolved names (0.00%)

I did 5 tests using the current master (no tagging-related code), the
times were:
	18.86 sec
	 9.17 sec
	 5.91 sec
	 4.79 sec
	 4.83 sec

And then I ran the same sequence of tests using the code in this
commit:
	18.73 sec
	 9.39 sec
	 6.50 sec
	 4.78 sec
	 5.27 sec

If performance does become a problem, then caching could be introduced
with a new implementation of ITaggableService.  The two problems are
finding a key other than the identity of the IBinding (since IBindings
are re-created often) and properly evicting stale entries when the
binding is no longer valid.

The process of copying tags from an in-memory IBinding to a PDOMBinding,
is a synchronization.  This means that tags that are no longer
applicable, will be removed from the persistent store.

While developing this I found that PDOMBindings are not deleted from the
Database (only the names that reference them are deleted), so there is
no provision for deleting all tags at once.

New database locks are not needed.  By the time the persistent tags are
accessed, higher levels of code have already taken a read or write lock
as appropriate.

There are new unit tests covering the changes to the PDOM.

Change-Id: I6ae1afc949082f7f4484b3faa1550670be43312f
Reviewed-on: https://git.eclipse.org/r/10659
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
2013-02-26 21:17:01 -05:00
Sergey Prigogin
470b57572c Represent TU by its file name instead of content. 2013-02-26 17:39:12 -08:00
Sergey Prigogin
361aa35205 Cosmetics. 2013-02-26 17:36:45 -08:00
Sergey Prigogin
29efae5311 Reverted commit 2279927: Bug 400020: Allow tagging of IBindings 2013-02-25 16:36:23 -08:00
Thomas Corbat
d24992f0a6 Bug 401661 - CPPClassType.getScope() at split definition and declaration
Now CPPClassType.getScope() returns the scope of the surrounding class
or namespace independent of the location of the definition.
2013-02-25 14:18:07 +01:00
Nathan Ridge
f0a597bc2b Bug 401400 - Another error involving variadic non-type template
parameters

Change-Id: Ic5c64de6d32a203d13274053da61923d9d8e2ad3
Reviewed-on: https://git.eclipse.org/r/10559
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-21 16:51:21 -05:00
Nathan Ridge
24ba7ff688 Bug 401142 - Error involving variadic non-type template parameters
Change-Id: I7735649c59354431a91980142055e4b86a82e6f6
Reviewed-on: https://git.eclipse.org/r/10467
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-20 12:51:30 -05:00
Nathan Ridge
ee08bee24b Bug 401140 - NullPointerException in CPPTemplates.addDefaultArguments()
Change-Id: I05fa8a3935904cb1bd293348dcbf10810e677b5c
Reviewed-on: https://git.eclipse.org/r/10466
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-20 12:37:58 -05:00
Nathan Ridge
f1542b27c6 Bug 399829 - Wrong context for name lookup in dependent expression
Change-Id: Iab800a2264c56bdf01498c238b08a2948ca3cfc8
Reviewed-on: https://git.eclipse.org/r/10333
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-20 12:24:28 -05:00
Andrew Eidsness
2279927623 Bug 400020: Allow tagging of IBindings
This new extension point allows contributors to put their own
information into the PDOM and to later retrieve it for their own
purposes.

There are many details in the bug.  The idea is that contributors
provide an implementation of IBindingTagger, which is given a chance to
examine IBindings when they are created.  The ITagWriter interface
allows the contributor to create a new tag which can then have data
written to it.

The ITagService interface (accessible from CCorePlugin.getTagService()
provides a way for the contributor to later get an instance of
ITagReader to retrieve tags from bindings.

ITags are copied to the PDOM when the associated binding is persisteed.

Contributors use a unique id (based on their plugin id), so that
multiple contributors are able to independently tag a given binding.

In-memory tags are not cached.  I've done some timing tests using my
sample implementation and found no measurable difference.  The full log
lines look like:

	!MESSAGE Indexed 'simple-01' (2 sources, 184 headers) in <see below>
sec: 21,550 declarations; 35,394 references; 0 unresolved inclusions; 1
syntax errors; 0 unresolved names (0.00%)

I did 5 tests using the current master (no tagging-related code), the
times were:
	18.86 sec
	 9.17 sec
	 5.91 sec
	 4.79 sec
	 4.83 sec

And then I ran the same sequence of tests using the code in this
commit:
	18.73 sec
	 9.39 sec
	 6.50 sec
	 4.78 sec
	 5.27 sec

If performance does become a problem, then caching could be introduced
with a new implementation of ITaggableService.  The two problems are
finding a key other than the identity of the IBinding (since IBindings
are re-created often) and properly evicting stale entries when the
binding is no longer valid.

The process of copying tags from an in-memory IBinding to a PDOMBinding,
is a synchronization.  This means that tags that are no longer
applicable, will be removed from the persistent store.

While developing this I found that PDOMBindings are not deleted from the
Database (only the names that reference them are deleted), so there is
no provision for deleting all tags at once.

New database locks are not needed.  By the time the persistent tags are
accessed, higher levels of code have already taken a read or write lock
as appropriate.

There are new unit tests covering the changes to the PDOM.

Change-Id: I8da1bf5eeba7e1fc2ca7ec308ed8e212629986a4
Reviewed-on: https://git.eclipse.org/r/10407
IP-Clean: Doug Schaefer <dschaefer@qnx.com>
Tested-by: Doug Schaefer <dschaefer@qnx.com>
Reviewed-by: Doug Schaefer <dschaefer@qnx.com>
2013-02-20 11:27:03 -05:00
Nathan Ridge
81885d232f Bug 401024 - Error involving variadic templates
Change-Id: Ic5e0b3176e87e6dcecfb528367ce5f8eea4760c1
Reviewed-on: https://git.eclipse.org/r/10426
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-19 23:14:57 -05:00
Sergey Prigogin
0ae8bcc48c Bug 401093 - Expression type for pointer difference does not fit on
64bit machines
2013-02-18 17:49:55 -08:00
Andrew Gvozdev
8f8ad163a5 Fix testRepeatedlyChangeConfig_bug375226 so its failure won't break all subsequent indexer tests 2013-02-17 15:10:08 -05:00
Marc-Andre Laperle
5d335384e3 Bug 385144 - Invalid redefinition of enum reported when enum is used as
first parameter in constructor

createBinding is called twice for the enumeration specifier because now
ImplicitsAnalysis calls createType on the constructor parameter
declaration. The second time it is called, it wrongly thinks the
specifier is a redefinition. We can check that it's not a redefinition
by comparing the ast names.

Change-Id: If7fb168d578a7a59e78867d6d8154e0866d2a730
Reviewed-on: https://git.eclipse.org/r/10272
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-12 13:03:57 -05:00
Sergey Prigogin
fda493a012 Use generics. 2013-02-07 10:24:00 -08:00
Nathan Ridge
929cc935a9 Bug 399362 - Error with depedent expression involving field in
nested class

Change-Id: I9245b09a926d5dda6da8e5fbd4a1ad7996fe999a
Reviewed-on: https://git.eclipse.org/r/10231
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-07 12:17:15 -05:00
Sergey Prigogin
f5567f16bd Added a comment. 2013-02-06 20:53:54 -08:00
Sergey Prigogin
82e0edf99f An attempt to reduce test flakiness. 2013-02-06 20:49:34 -08:00
Nathan Ridge
e3150dce7f Bug 399142 - [regression] 'Open Declaration' does not work inside
template

Change-Id: Ie61924e7bba3aea1fff1df6d996d5af317e8c435
Reviewed-on: https://git.eclipse.org/r/9984
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-06 01:37:23 -05:00
Sergey Prigogin
b8fa0f2269 Use the configurable index timeout. 2013-02-05 14:04:54 -08:00
Sergey Prigogin
d3160c878f Bug 389009 - Enumerator with dependent value. Index support.
Change-Id: Ic54e20e2b4c04241d9a86c1f363b190091a28d0e
Reviewed-on: https://git.eclipse.org/r/10125
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-05 13:18:20 -05:00
Nathan Ridge
c3470476a0 Bug 389009 - Enumerator with dependent value
Change-Id: I4fc077870419bccd6dce15c33a0d455e8379d7e0
Reviewed-on: https://git.eclipse.org/r/10092
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-02-05 13:09:29 -05:00
Sergey Prigogin
96fbfd6f00 Enabled assertions during tests. 2013-02-05 10:07:41 -08:00
Sergey Prigogin
2a96dbfc19 Cosmetics. 2013-02-02 17:01:20 -08:00
Markus Schorn
b4401b6198 Bug 399394: Include macro expansions yielding the empty token in IASTNode.getNodeLocations() 2013-01-31 10:36:14 +01:00
Sergey Prigogin
47373b6644 Deleted an obsolete file. 2013-01-30 13:25:32 -08:00
Sergey Prigogin
9c151f6127 Fixed an NPE. 2013-01-30 11:54:44 -08:00
Nathan Ridge
9e8c662a73 Bug 397342 - Error calculating size of reference type
Change-Id: I1274da6ebd14f0c1f97dce2699d62018cff57b05
Reviewed-on: https://git.eclipse.org/r/9426
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-01-30 13:41:10 -05:00
Nathan Ridge
95c1231336 Bug 399039 - Error involving variadic non-type template parameter
Change-Id: I61b19e1fc5aac9372ad756c1e33e412f4bee86e2

Reviewed-on: https://git.eclipse.org/r/9943
Reviewed-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
IP-Clean: Sergey Prigogin <eclipse.sprigogin@gmail.com>
Tested-by: Sergey Prigogin <eclipse.sprigogin@gmail.com>
2013-01-29 19:41:48 -05:00