Douglas Gregor
97c7571ef3
Introduce a new libclang function, clang_getCursorDisplayName(), which
...
produces a simple "display" name that captures the
arguments/parameters for a function, function template, class
template, or class template specialization.
llvm-svn: 115428
2010-10-02 22:49:11 +00:00
Douglas Gregor
4e3918c06b
Teach clang_getCursorType() about base specifiers and other references
...
to types.
Also, teach clang_getTypeDeclaration() about template specializations,
injected-class-names, and elaborated types.
Fixes <rdar://problem/8506460>.
llvm-svn: 115425
2010-10-02 21:57:58 +00:00
Douglas Gregor
db9fb5a427
Don't add -fno-spell-checking in libclang if a spell-checking-related argument is already in the command-line arguments
...
llvm-svn: 115420
2010-10-02 20:06:51 +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
e6712983d2
Teach clang_getCursorReferenced() about Objective-C property reference
...
and protocol expressions. Fixes <rdar://problem/7833565>.
llvm-svn: 115346
2010-10-01 21:11:22 +00:00
Douglas Gregor
99a26afd49
Extend libclang with an API that determines, given a C++ virtual
...
member function or an Objective-C method, which other member
functions/methods it overrides.
llvm-svn: 115338
2010-10-01 20:25:15 +00:00
Douglas Gregor
176d286c96
Enable caching of global code completion results in the suggested
...
libclang options for editing a translation unit.
llvm-svn: 114810
2010-09-27 05:49:58 +00:00
Douglas Gregor
2c84482abd
Teach libclang to enable multithreading in LLVM, since libclang clients are likely to be multithreaded. Also move the printing of timers to somewhere better for multithreaded libclang clients
...
llvm-svn: 114760
2010-09-24 21:18:36 +00:00
Douglas Gregor
ca5b053920
Add some missing concurrency checks into libclang
...
llvm-svn: 114682
2010-09-23 18:47:53 +00:00
Douglas Gregor
0576ce730a
Implement libclang API functions for retrieving the lexical and
...
semantic parents of the given cursor.
llvm-svn: 114587
2010-09-22 21:22:29 +00:00
Ted Kremenek
2f07563f47
Correctly register the class extension as the lexical DeclContext for ObjC methods declared with @property in class extensions.
...
This matches the behavior for setters.
Also pass the class extension to ProcessPropertyDecl as the lexical DeclContext, even when not redeclaring the @property.
This fixes the remaining issues in <rdar://problem/7410145>.
llvm-svn: 114477
2010-09-21 20:52:59 +00:00
Ted Kremenek
0030e1d3cd
Fix indentation.
...
llvm-svn: 114394
2010-09-21 04:47:01 +00:00
Ted Kremenek
c2eb0116cc
Check for null ObjCInterfaceDecls returned from getClassInterface() when generating USRs. While I have no test case for this (could not create one), this shows up in crash reports. Tentatively fixes <rdar://problem/8452791>.
...
llvm-svn: 114392
2010-09-21 04:45:46 +00:00
Douglas Gregor
8af2ff89f7
Introduce a simple, substitution-based compression scheme for USRs, so
...
that redundant types don't result in super-long USRs. Fixes
<rdar://problem/8447875>.
llvm-svn: 114347
2010-09-20 20:37:39 +00:00
Douglas Gregor
f9088c93be
When traversing an InitListExpr, there may not be a syntactic form;
...
check for NULL and visit the InitListExpr we have if there is no
syntactic form.
llvm-svn: 114203
2010-09-17 20:26:51 +00:00
Douglas Gregor
ae18530d03
Fix a silly typo and its pasteo. Thanks to Francois Pichet for noticing my mistake
...
llvm-svn: 114075
2010-09-16 13:54:00 +00:00
Michael J. Spencer
09476212de
Revert "CMake: Update to use standard CMake dependency tracking facilities instead"
...
This reverts commit r113631
Conflicts:
CMakeLists.txt
lib/CodeGen/CMakeLists.txt
llvm-svn: 113817
2010-09-13 23:54:41 +00:00
Douglas Gregor
16a2bdd6b0
Introduce a new kind of cursor into libclang, which covers a reference
...
to an "overloaded" set of declarations. This cursor kind works for
unresolved references to functions/templates (e.g., a call within a
template), using declarations, and Objective-C class and protocol
forward declarations.
llvm-svn: 113805
2010-09-13 22:52:57 +00:00
Douglas Gregor
c7a7d92ad2
Fix my silly sorting predicate. I hate integer-to-bool conversions
...
llvm-svn: 113656
2010-09-10 23:05:54 +00:00
Michael J. Spencer
0881f4a367
CMake: Update to use standard CMake dependency tracking facilities instead
...
of whatever we were using before...
llvm-svn: 113631
2010-09-10 21:13:16 +00:00
Sebastian Redl
4202c0f2a9
Define and implement CXXNoexceptExpr. Create it in Sema.
...
llvm-svn: 113623
2010-09-10 20:55:43 +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
d198047ef3
Add libclang visitation for C99 designated initializers.
...
llvm-svn: 113560
2010-09-09 23:28:23 +00:00
Douglas Gregor
0d4d88cf38
Add libclang visitation for __builtin_offsetof's components (fields
...
and array references).
llvm-svn: 113556
2010-09-09 23:10:46 +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
9f0e1aa0f2
Simplify template instantiation for C++ exception declarations,
...
eliminating an unnecessary use of TemporaryBase in the process.
llvm-svn: 113500
2010-09-09 17:09:21 +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
c9199f522f
Clean up CMake dependencies
...
llvm-svn: 113489
2010-09-09 15:44:58 +00:00
Francois Pichet
5cc0a67f08
Fix warnings caused by new CXXUuidofExprClass enumerator.
...
llvm-svn: 113444
2010-09-08 23:47:05 +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
09c0eb1510
Synchronize code-completion cursor kinds with indexing cursor
...
kinds. How shameful that this code was duplicated!
llvm-svn: 113033
2010-09-03 23:30:36 +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
6429f5cf29
Eliminate CXXBindReferenceExpr, which was used in a ton of
...
well-intentioned but completely unused code.
llvm-svn: 112868
2010-09-02 21:50:02 +00:00
Douglas Gregor
fd81cea70c
Teach libclang not to recursive into default argument expressions
...
llvm-svn: 112866
2010-09-02 21:38:13 +00:00
Douglas Gregor
46af501065
Add libclang visitation for C++ typeid expressions.
...
llvm-svn: 112862
2010-09-02 21:20:16 +00:00
Douglas Gregor
32e4c861c8
In libclang, visit the nested-name-specifier and explicitly-specified template arguments of a MemberExpr.
...
llvm-svn: 112860
2010-09-02 21:07:44 +00:00
Douglas Gregor
aac7c8106a
Visit the nested-name-specifier and explicitly-specified template
...
arguments of a DeclRefExpr.
llvm-svn: 112854
2010-09-02 20:35:02 +00:00
Douglas Gregor
3335f48448
Implement basic visitation for nested name specifiers via libclang
...
cursors. Sadly, this visitation is a hack, because we don't have
proper source-location information for nested-name-specifiers in the
AST. It does improve on the status quo, however.
llvm-svn: 112837
2010-09-02 17:35:32 +00:00
Douglas Gregor
d3f48bd3be
Introduce a new libclang function,
...
clang_getSpecializedCursorTemplate(), which determines the template
(or member thereof) that the given cursor specializes or from which it
was instantiated. This routine can be used to establish a link between
templates and their instantiations/specializations.
llvm-svn: 112780
2010-09-02 00:07:54 +00:00
Douglas Gregor
06c7d2df9b
Teach libclang to visit the default arguments of template parameters.
...
llvm-svn: 112734
2010-09-01 20:16:53 +00:00
Douglas Gregor
a9aa29cf0b
Implement libclang support for using declarations. Clang actually uses
...
three different kinds of AST nodes to represent using declarations:
UsingDecl, UnresolvedUsingValueDecl, and
UnresolvedUsingTypenameDecl. These three are collapsed into a single
cursor kind for using declarations, since libclang clients don't need
the distinction.
Several related changes here:
- Cursor visitation of the three AST nodes for using declarations
- Proper source-range computation for these AST nodes
- Using declarations have no USRs, since they don't actually declare
any entities.
llvm-svn: 112730
2010-09-01 19:52:22 +00:00
Douglas Gregor
9dc243c3eb
Improve libclang indexing support for class template specializations
...
in a few related ways:
- Don't recurse into instantiations of templates.
- Recurse into explicit specializations.
- Visit the template arguments of an explicit specialization or
explicit instantiation.
- Include template specialization arguments in the USRs for class
template specializations.
llvm-svn: 112720
2010-09-01 17:32:36 +00:00
Douglas Gregor
57879faf91
Make it clear that libclang does not modify the command-line arguments
...
it is given.
llvm-svn: 112717
2010-09-01 16:43:19 +00:00
Douglas Gregor
01a430134f
Implement libclang support for using directives (cursor + visitation +
...
suppressing USRs). Also, fix up the source location information for
using directives so that the declaration location refers to the
namespace name.
llvm-svn: 112693
2010-09-01 03:07:18 +00:00