summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndexUSRs.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Implement the C++0x deduced 'auto' feature.Richard Smith2011-02-201-1/+0
| | | | | | This fixes PR 8738, 9060 and 9132. llvm-svn: 126069
* Don't crash when generating USRs for ObjC methods in protocols.Ted Kremenek2011-02-051-8/+13
| | | | llvm-svn: 124920
* USRs for Objective-C methods use the USR of the @interface as their base, ↵Ted Kremenek2011-02-041-18/+6
| | | | | | not the USR of the class category or extension. llvm-svn: 124859
* Teach libclang to generate USRs containing parameter packs and pack expansions.Douglas Gregor2011-01-191-3/+18
| | | | llvm-svn: 123848
* Replace the representation of template template argument packDouglas Gregor2011-01-051-1/+3
| | | | | | | | | | | | | expansions with something that is easier to use correctly: a new template argment kind, rather than a bit on an existing kind. Update all of the switch statements that deal with template arguments, fixing a few latent bugs in the process. I"m happy with this representation, now. And, oh look! Template instantiation and deduction work for template template argument pack expansions. llvm-svn: 122896
* The -fshort-wchar option causes wchar_t to become unsigned, in addition to beingChris Lattner2010-12-251-1/+2
| | | | | | | 16-bits in size. Implement this by splitting WChar into two enums, like we have for char. This fixes a miscompmilation of XULRunner, PR8856. llvm-svn: 122558
* Replace all uses of PathV1::getLast with PathV2::filename.Michael J. Spencer2010-12-181-2/+1
| | | | llvm-svn: 122117
* Rework USR generation from CXCursors to use CXStringBufsTed Kremenek2010-11-161-20/+42
| | | | | | | | | | | for the backing of generated USRs. This optmizes for the case when a client generates a sequence of USRs in sequence, disposing of them soon after generating them. By using a string buffer, we recycle malloc'ed memory instead of constantly malloc'ing and copying strings. llvm-svn: 119338
* Move CXString creation/management routines intoTed Kremenek2010-11-161-0/+1
| | | | | | | their own .cpp file and make the interpretation of its flags private. llvm-svn: 119319
* Fix a marvelous chained AST writing bug, where we end up with theDouglas Gregor2010-10-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | following amusing sequence: - AST writing schedules writing a type X* that it had never seen before - AST writing starts writing another declaration, ends up deserializing X* from a prior AST file. Now we have two type IDs for the same type! - AST writer tries to write X*. It only has the lower-numbered ID from the the prior AST file, so references to the higher-numbered ID that was scheduled for writing go off into lalaland. To fix this, keep the higher-numbered ID so we end up writing the type twice. Since this issue occurs so rarely, and type records are generally rather small, I deemed this better than the alternative: to keep a separate mapping from the higher-numbered IDs to the lower-numbered IDs, which we would end up having to check whenever we want to deserialize any type. Fixes <rdar://problem/8511624>, I think. llvm-svn: 115647
* Fix indentation.Ted Kremenek2010-09-211-1/+1
| | | | llvm-svn: 114394
* Check for null ObjCInterfaceDecls returned from getClassInterface() when ↵Ted Kremenek2010-09-211-4/+11
| | | | | | 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
* Introduce a simple, substitution-based compression scheme for USRs, soDouglas Gregor2010-09-201-26/+43
| | | | | | | that redundant types don't result in super-long USRs. Fixes <rdar://problem/8447875>. llvm-svn: 114347
* Implement libclang support for using declarations. Clang actually usesDouglas Gregor2010-09-011-0/+9
| | | | | | | | | | | | | | | | 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
* Improve libclang indexing support for class template specializationsDouglas Gregor2010-09-011-0/+11
| | | | | | | | | | | | | 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
* Implement libclang support for using directives (cursor + visitation +Douglas Gregor2010-09-011-2/+4
| | | | | | | | 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
* Add libclang support for namespace aliases (visitation + USRs) alongDouglas Gregor2010-08-311-0/+6
| | | | | | | | | | | with a new cursor kind for a reference to a namespace. There's still some oddities in the source location information for NamespaceAliasDecl that I'll address with a separate commit, so the source locations displayed in the load-namespaces.cpp test will change. llvm-svn: 112676
* Add libclang support for class template partial specializations,Douglas Gregor2010-08-311-8/+20
| | | | | | including a cursor kind, visitation, and USRs. llvm-svn: 112629
* Add a libclang cursor kind, visitation support and USR support for C++Douglas Gregor2010-08-311-6/+28
| | | | | | class templates. llvm-svn: 112627
* Implement basic support for indexing function templates inDouglas Gregor2010-08-311-3/+121
| | | | | | | | | | | | | | 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
* USRs for class extensions should "mangle" in the location of the extension. ↵Ted Kremenek2010-08-241-2/+23
| | | | | | (<rdar://problem/8350262>) llvm-svn: 111991
* Detabify.Eli Friedman2010-08-221-1/+1
| | | | llvm-svn: 111768
* Switch USR generation to use file offsets instead of line/columns for ↵Ted Kremenek2010-07-221-4/+4
| | | | | | anonymous symbols. Fixes <rdar://problem/8221557>. llvm-svn: 109095
* Merged Elaborated and QualifiedName types.Abramo Bagnara2010-05-111-4/+4
| | | | llvm-svn: 103517
* Extend C++ usrs to include type mangling for tag decl arguments, indicating ↵Ted Kremenek2010-05-071-4/+21
| | | | | | | | whether a method is static, and mangling in the qualifers of the method. llvm-svn: 103289
* Switch USR generation over from NamedDecl::getNameAsString() to ↵Ted Kremenek2010-05-071-92/+98
| | | | | | NamedDecl::printName(). llvm-svn: 103285
* Add initial USR support for mangling in the types of C++ functions and methods.Ted Kremenek2010-05-071-2/+138
| | | | llvm-svn: 103225
* Add USR support for C++ namespaces, and unify mangling of location ↵Ted Kremenek2010-05-061-37/+47
| | | | | | | | information in USRs for anonymous symbols. llvm-svn: 103212
* Rename 'CIndex' to 'libclang', since it has basically become our stable publicDaniel Dunbar2010-04-301-0/+477
(C) API, and will likely grow further in this direction in the future. llvm-svn: 102779
OpenPOWER on IntegriCloud