Argyrios Kyrtzidis
c7c6a07548
[libclang] Fix issue with clang_tokenize and make sure it interprets CXSourceRange as half-open character range.
...
Patch provided by Emilio Cobos Álvarez! (https://reviews.llvm.org/D26446 )
llvm-svn: 286421
2016-11-09 23:58:39 +00:00
Olivier Goffart
692d533100
Make sizeof and alignof a CXCursor_UnaryExpr
...
So we can match sizeof expressions more accurately than with UnexposedExpr
Differential Revision: http://reviews.llvm.org/D18081
llvm-svn: 272274
2016-06-09 16:16:06 +00:00
Argyrios Kyrtzidis
58d0e7ab79
[libclang] During member ref expression visitation, ignore base anonymous struct/union fields.
...
Otherwise they will shadow the real field that that we are interested in.
rdar://19783938
llvm-svn: 232141
2015-03-13 04:40:07 +00:00
Argyrios Kyrtzidis
5d47a9b253
[libclang] Fix annotation of a range where the begin or end location
...
is inside a macro argument.
Previously we would give up and not annotate anything in the range.
rdar://11891550
llvm-svn: 175062
2013-02-13 18:33:28 +00:00
Argyrios Kyrtzidis
a2ed813afd
[libclang] Attribute visitation happens out-of-source-order, make sure
...
we annotate properly when there is an attribute and not skip type specs
if the attribute is after the declaration.
rdar://13129077
llvm-svn: 174689
2013-02-08 01:12:25 +00:00
Argyrios Kyrtzidis
98a8874a0d
[libclang] Make token annotation of type/storage qualifiers accurate.
...
Previously type/storage qualifiers would not be annotated as the declaration they belonged to.
Just use the resulting source range of getRawCursorExtent() which is more correct
than what AnnotateTokensWorker::Visit() was adjusting it to.
llvm-svn: 171774
2013-01-07 19:16:27 +00:00
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
Abramo Bagnara
9875a3ce70
Use ElaboratedType also for C.
...
llvm-svn: 127755
2011-03-16 20:16:18 +00:00
Douglas Gregor
6471db0749
Force CaseStmt to store its child statements in source-code order,
...
which is important for libclang's token-annotation and
where's-my-cursor functionality. Fixes <rdar://problem/9004439>.
llvm-svn: 126887
2011-03-02 21:45:00 +00:00
Douglas Gregor
4e2749193b
Swap the order of the condition and body of a do-while statement in
...
the AST, so that we visit them in source order. Fixes <rdar://problem/8779113>.
llvm-svn: 122062
2010-12-17 16:18:04 +00:00
Douglas Gregor
e68aaca766
Teach the libclang cursor visitor to walk into the type information
...
provided by __builtin_types_compatible_p and __builtin_va_arg
expressions, now that Abramo has added proper type-source information
to those expressions.
llvm-svn: 110681
2010-08-10 15:02:34 +00:00
Ted Kremenek
680fe51e2c
Rework clang_annotateTokens() to annotate tokens with information that more closely matches
...
clang_getCursor(). Tokens are now annotated with the cursor (for the matching AST element)
that most closely encompasses that token.
llvm-svn: 103064
2010-05-05 00:55:23 +00:00
Douglas Gregor
b8b9f28e24
Robustify SourceManager::getLocation(), so that it returns an
...
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.
llvm-svn: 97299
2010-02-27 02:42:25 +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
Douglas Gregor
6165611986
Implement clang_annotateTokens(), which associates cursors with each
...
of the tokens within a raw token stream. This does not even attempt to
handle macros yet.
llvm-svn: 94561
2010-01-26 18:31:56 +00:00
Douglas Gregor
27b4fa994d
Introduce a CIndex API for lexing the raw tokens within a given source
...
range. The token-annotation function does nothing, yet.
llvm-svn: 94551
2010-01-26 17:06:03 +00:00