| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
In dependent contexts we end up referencing these, so make sure they
have USRs, and have their declarations indexed. For the most part they
behave like typedefs, but we also need to worry about having multiple
using declarations with the same "name".
rdar://problem/33883650
llvm-svn: 311053
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
properly even when a non-type template parameter has a dependent type.
Previously, if a non-type template parameter was dependent, but not dependent
on an outer level of template parameter, we would not match the type of the
parameter. Under [temp.arg.template], we are supposed to check that the types
are equivalent, which means checking for syntactic equivalence in the dependent
case.
This also fixes some accepts-invalids when passing templates with auto-typed
non-type template parameters as template template arguments.
llvm-svn: 291512
|
|
|
|
|
|
|
|
| |
This makes TypeAliasTemplateDecl accessible via LibClang and python bindings
Differential Revision: http://reviews.llvm.org/D13844
llvm-svn: 253166
|
|
|
|
|
|
|
|
| |
'class' and 'struct' can be used interchangebly for forward references.
Use the same encoding otherwise we may get into a weird situation where the USR for the same
declaration is different based on whether the definition of the tag reference is visible or not.
llvm-svn: 223632
|
|
|
|
|
|
|
|
| |
the return type in the USR
and handle DependentNameType in order to be able to distinguish them.
llvm-svn: 223628
|
|
|
|
|
|
|
|
|
| |
Includes Python bindings.
Reviewed in http://reviews.llvm.org/D5621
Patch by Rob Springer
llvm-svn: 219529
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Ranges before:
void test(void (*)(int), int, float);
~~~~~~~~~~~~~ ~~~~ ~~~~~~
Ranges after:
void test(void (*)(int), int, float);
~~~~~~~~~~~~~ ~~~ ~~~~~
This does not change the actual location of the ParmVarDecl, it still
points to the location where the name would be. PR17970.
llvm-svn: 200640
|
|
|
|
|
|
| |
from Manuel Holtgrewe!
llvm-svn: 141200
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
a cursor reference, from Erik Verbruggen!
llvm-svn: 135920
|
|
|
|
| |
llvm-svn: 127225
|
|
|
|
| |
llvm-svn: 127119
|
|
|
|
| |
llvm-svn: 126999
|
|
|
|
| |
llvm-svn: 126996
|
|
|
|
| |
llvm-svn: 126994
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
more closely parallel the computation of linkage. This gets us to a state
much closer to what gcc emits, modulo bugs, which will undoubtedly arise in
abundance.
llvm-svn: 117147
|
|
|
|
|
|
|
|
|
|
|
| |
to types.
Also, teach clang_getTypeDeclaration() about template specializations,
injected-class-names, and elaborated types.
Fixes <rdar://problem/8506460>.
llvm-svn: 115425
|
|
|
|
|
|
|
| |
that redundant types don't result in super-long USRs. Fixes
<rdar://problem/8447875>.
llvm-svn: 114347
|
|
|
|
|
|
|
| |
check for NULL and visit the InitListExpr we have if there is no
syntactic form.
llvm-svn: 114203
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
address of a label (GNU extension).
llvm-svn: 113564
|
|
|
|
|
|
| |
template arguments of a MemberExpr.
llvm-svn: 112860
|
|
|
|
|
|
| |
arguments of a DeclRefExpr.
llvm-svn: 112854
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
support for which came in with the last commit.
llvm-svn: 112735
|
|
|
|
| |
llvm-svn: 112734
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
template. Such cursors occur, for example, in template specialization
types such as vector<int>. Note that we do not handle the
super-interesting case where the template name is unresolved, e.g.,
within a template.
llvm-svn: 112636
|
|
|
|
|
|
| |
including a cursor kind, visitation, and USRs.
llvm-svn: 112629
|
|
|
|
|
|
| |
class templates.
llvm-svn: 112627
|
|
libclang. This includes:
- Cursor kind for function templates, with visitation logic
- Cursor kinds for template parameters, with visitation logic
- Visitation logic for template specialization types, qualified type
locations
- USR generation for function templates, template specialization
types, template parameter types.
Also happens to fix PR7804, which I tripped across while testing.
llvm-svn: 112604
|