Douglas Gregor
4c362d5310
Expose more statement, expression, and declaration kinds in libclang,
...
from Manuel Holtgrewe!
llvm-svn: 141200
2011-10-05 19:00:14 +00:00
Argyrios Kyrtzidis
01e3c590ae
[libclang] For getDeclFromExpr in CIndex.cpp, associate the decl of
...
a DeclRefExpr, MemberExpr, etc. with a CastExpr if it is ImplicitCast,
since the implicit cast is the one that is invisible in source code.
llvm-svn: 139547
2011-09-12 22:17:26 +00:00
Francois Pichet
0274487d97
Enable -fdelayed-template-parsing by default on Win32.
...
I had to force -fno-delayed-template-parsing on some Index tests because delayed template parsing will change the output of some tests.
llvm-svn: 138942
2011-09-01 16:38:08 +00:00
Abramo Bagnara
dff1930bf7
Fixed source range for all DeclaratorDecl's.
...
llvm-svn: 127225
2011-03-08 08:55:46 +00:00
Abramo Bagnara
b3185b00c5
Fixed TypedefDecl and TemplateTypeParameter source range.
...
llvm-svn: 127119
2011-03-06 15:48:19 +00:00
Douglas Gregor
4478f858b5
Add the location of the right parenthesis of a C++ named cast
...
(static_cast, dynamic_cast, reinterpret_cast, or const_cast) to
improve source-location information. Fixes PR8960.
llvm-svn: 123336
2011-01-12 22:41:29 +00:00
Douglas Gregor
16443fdd31
Teach clang_getCursorReferenced() that a
...
CXXConstructorExpr/CXXTemporaryObjectExpr references the constructor
it calls. Then, tweak clang_getCursor() to prefer such a call over a
type reference to the type being called.
llvm-svn: 118297
2010-11-05 21:11:19 +00:00
Chandler Carruth
0171815ae1
Improve the tracking of source locations for parentheses in constructor calls.
...
This adds them where missing, and traces them through PCH. We fix at least one
bug in the extents found by the Index library, and make a lot of refactoring
tools which care about the exact formulation of a constructor call easier to
write. Also some minor cleanups to more consistently follow the friend pattern
instead of the setter pattern when rebuilding a serialized AST.
Patch originally by Samuel Benzaquen.
llvm-svn: 117254
2010-10-25 08:47:36 +00:00
Douglas Gregor
3478c75b71
Provide proper source location and range information for C++ base
...
specifier cursors in libclang. FIXME -=2, fixes the rest of
<rdar://problem/8274883>.
llvm-svn: 115419
2010-10-02 19:51:13 +00:00
Douglas Gregor
a93ab66331
Add libclang support for label statements, gotos, and taking the
...
address of a label (GNU extension).
llvm-svn: 113564
2010-09-10 00:22:18 +00:00
Douglas Gregor
f3af311382
Teach libclang to walk the base and member initializers of a
...
constructor, in source order. Also introduces a new reference kind for
class members, which is used here (for member initializers) and will
also be used for designated initializers and offsetof.
llvm-svn: 113545
2010-09-09 21:42:20 +00:00
Douglas Gregor
54e5b13a27
Add proper type-source information to UnaryTypeTraitExpr, including
...
libclang visitation.
llvm-svn: 113492
2010-09-09 16:14:44 +00:00
Douglas Gregor
2b88c115f9
Provide proper type-source location information for
...
CXXTemporaryObjectExpr, CXXScalarValueInitExpr, and
CXXUnresolvedConstructExpr, getting rid of a bunch of FIXMEs in the
process.
llvm-svn: 113319
2010-09-08 00:15:04 +00:00
Douglas Gregor
0744ef6371
Improve source-location information for CXXNewExpr, by hanging on to
...
the TypeSourceInfo for the allocated type. Fixes PR7501.
llvm-svn: 113291
2010-09-07 21:49:58 +00:00
Douglas Gregor
901a0fabfc
Implement libclang visitation for UnresolvedMemberExpr. This is the
...
last of the C++-specific expressions where we have decent source
information in the AST already. In particular, various
object-construction expressions (CXXNewExpr, CXXTemporaryObjectExpr)
still have poor source-location information that needs to be addressed.
llvm-svn: 112981
2010-09-03 18:01:25 +00:00
Douglas Gregor
4583827e13
libclang visitation for CXXDependentScopeMemberExpr
...
llvm-svn: 112978
2010-09-03 17:35:34 +00:00
Douglas Gregor
4ae34afaf9
libclang visitation for DependentScopeDeclRefExpr
...
llvm-svn: 112975
2010-09-03 17:24:10 +00:00
Douglas Gregor
f24eaee2b3
Teach libclang to visit OverloadExprs, so that we can reuse this
...
code. Also, teach it about explicitly-specified template arguments.
llvm-svn: 112884
2010-09-02 22:29:21 +00:00
Douglas Gregor
3ca46b4275
Add libclang visitation for UnresolvedLookupExprs
...
llvm-svn: 112879
2010-09-02 22:19:24 +00:00
Douglas Gregor
4edb2ff89f
Add libclang visitation for C++ pseudo-destructor expressions.
...
llvm-svn: 112873
2010-09-02 22:09:03 +00:00
Douglas Gregor
46af501065
Add libclang visitation for C++ typeid expressions.
...
llvm-svn: 112862
2010-09-02 21:20:16 +00:00
Ted Kremenek
ae9e221513
Implement CXCursor support for walking C++ base specifiers. This includes adding the API hooks clang_isVirtualBase() and clang_getCXXAccessSpecifier() to query properties of the base specifier.
...
Implements <rdar://problem/8274883>.
llvm-svn: 112296
2010-08-27 21:34:58 +00:00
Ted Kremenek
12e0f2937e
Specially handle CaseStmts in CursorVisitor because they can be nested and walking them
...
can blow out the stack.
llvm-svn: 103687
2010-05-13 00:25:00 +00:00
Ted Kremenek
c316e4ef50
Make test portable.
...
llvm-svn: 103588
2010-05-12 07:24:45 +00:00
Ted Kremenek
8278a32802
Re-apply r103581 with updated tests. It turns out we were computing bogus locations for
...
many things.
llvm-svn: 103583
2010-05-12 06:16:13 +00:00
Daniel Dunbar
6092d507f0
c-index-test: Unify and always print half-open extents.
...
llvm-svn: 96160
2010-02-14 08:32:51 +00:00
Daniel Dunbar
98c07e0e23
c-index-test: Unify syntax for printing extents. Yes, there were 4.
...
llvm-svn: 96158
2010-02-14 08:32:24 +00:00
Douglas Gregor
e391b01a3a
Add test case for ? : crasher
...
llvm-svn: 94429
2010-01-25 17:48:13 +00:00
Douglas Gregor
5bce76cd53
Loosen preconditions for clang_getCursorSpelling(), returning an empty
...
string when given a cursor that does not have a name. Also, don't give
silly names for statements and non-reference expressions.
llvm-svn: 94426
2010-01-25 16:56:17 +00:00
Douglas Gregor
7201f9f6b8
Visit the condition variables of while and for loops; also, visit the
...
condition even when we've visited the condition variable, so that
we'll see implicit conversions there.
llvm-svn: 94423
2010-01-25 16:12:32 +00:00