summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang
Commit message (Collapse)AuthorAgeFilesLines
...
* CursorVisitor: migrate CXXNewExpr and CXXDefaultArgExpr over to ↵Ted Kremenek2010-11-131-26/+19
| | | | | | data-recursive algorithm. llvm-svn: 118989
* CursorVisitor: special-case CompoundStmt in data-recursion algorithm so we ↵Ted Kremenek2010-11-131-0/+7
| | | | | | | | don't have to enqueue its children and then reverse them. llvm-svn: 118986
* CursorVisitor: Migrate BlockExpr, CXXTemporaryOBjectExpr, and ObjCEncodeExpr ↵Ted Kremenek2010-11-131-21/+19
| | | | | | to data-recursive algorithm. llvm-svn: 118964
* CursorVisitor: Migrate DeclRefExpr over to data-recursion algorithm.Ted Kremenek2010-11-131-25/+28
| | | | llvm-svn: 118961
* CursorVisitor: migrate GotoStmt to data-recursive algorithm.Ted Kremenek2010-11-131-5/+9
| | | | llvm-svn: 118960
* CursorVisitor: migrate DeclStmt over to data-recursive algorithm.Ted Kremenek2010-11-131-47/+62
| | | | llvm-svn: 118957
* CursorVisitor: Convert logic for populating data-recursion worklist from a ↵Ted Kremenek2010-11-131-119/+107
| | | | | | switch statement to a StmtVisitor. No functionality change. llvm-svn: 118956
* Use dyn_cast result instead of re-casting. Fixes -Werror build with:Nick Lewycky2010-11-121-1/+1
| | | | | | /llvm/tools/clang/tools/libclang/CIndex.cpp:1823: error: unused variable 'E' [-Wunused-variable] llvm-svn: 118947
* CursorVisitor: Pull ObjCMessageExpr and explicit casts into data-recursion ↵Ted Kremenek2010-11-121-13/+18
| | | | | | algorithm. llvm-svn: 118934
* CursorVisitor: migrate ObjCMessageExpr over to data-recursion algorithm.Ted Kremenek2010-11-121-9/+6
| | | | llvm-svn: 118933
* CursorVisitor: migrate UnresolvedMemberExpr and UnresolvedLookupExpr over to ↵Ted Kremenek2010-11-121-40/+45
| | | | | | data-recursion algorithm. llvm-svn: 118929
* CursorVisitor: migrate CompoundLiteralExpr over to data-recursion algorithm.Ted Kremenek2010-11-121-14/+43
| | | | llvm-svn: 118928
* CursorVisitor: add data-recursion support for InitListExprs.Ted Kremenek2010-11-121-23/+27
| | | | llvm-svn: 118927
* CursorVisitor: migrate 'DoStmt', 'ForStmt', and 'WhileStmt' over to ↵Ted Kremenek2010-11-121-34/+22
| | | | | | data-recursion algorithm. llvm-svn: 118912
* CursorVisitor: use 'WLAddStmt' and 'WLAddDecl' for adding to data-recursion ↵Ted Kremenek2010-11-121-20/+13
| | | | | | worklist. llvm-svn: 118911
* CursorVisitor: migrate 'IfStmt' over to data-recursive algorithm.Ted Kremenek2010-11-121-18/+19
| | | | llvm-svn: 118910
* CursorVisitor: migrate handling of SwitchStmt and CaseStmt over to general ↵Ted Kremenek2010-11-121-80/+45
| | | | | | data-recursion algorithm. llvm-svn: 118909
* Make sure to always check the result ofDouglas Gregor2010-11-121-1/+1
| | | | | | | SourceManager::getPresumedLoc(), so that we don't try to make use of an invalid presumed location. Doing so can cause crashes. llvm-svn: 118885
* Modify CursorVisitor to also walks CXXOperatorCallExprs using ↵Ted Kremenek2010-11-111-15/+17
| | | | | | data-recursion. Fixes <rdar://problem/8659019>. llvm-svn: 118853
* Annotate tokens in a separate thread to avoid blowing out stack space. ↵Ted Kremenek2010-11-111-1/+16
| | | | | | | | | | While the CursorVisitor is gradually becoming more data recursive, AnnotateTokensVisitor does its own recursive call within the visitor that can still blow out the stack. This can potentially be reworked to avoid this, but for now just do token annotation on a separate thread. llvm-svn: 118783
* Generalize data-recursive visitation in CursorVisitor to also handle MemberExprsTed Kremenek2010-11-111-119/+175
| | | | | | | and CXXCallMemberExprs. This scheme is hopefully general enough to extend to the rest of the visitor if necessary. llvm-svn: 118782
* Improve ASTUnit's capture of diagnostics so that theDouglas Gregor2010-11-111-1/+1
| | | | | | | | | | diagnostic-capturing client lives as long as the ASTUnit itself does. Otherwise, we can end up with crashes when we get a diagnostic outside of parsing/code completion. The circumstances under which this happen are really hard to reproduce, because a file needs to change from under us. llvm-svn: 118751
* Replace UsingDecl's SmallPtrSet of UsingShadowDecls with a linked list to ↵Argyrios Kyrtzidis2010-11-101-1/+1
| | | | | | | | avoid leaking memory. Fixes rdar://8649963. llvm-svn: 118674
* ntroduce clang_getSpellingLocation() into libclang, to provide theDouglas Gregor2010-11-094-8/+56
| | | | | | | | | | | | | | location where we're spelling a token even within a macro. clang_getInstantiationLocation() tells where we instantiated the macro. I'm still not thrilled with the CXSourceLocation/CXSourceRange APIs, since they gloss over macro-instantiation information. Take 2: this time, adjusted tests appropriately and used a "simple" approach to the spelling location. llvm-svn: 118495
* Revert r118492, which didn't update all of its tests accordinglyDouglas Gregor2010-11-094-47/+8
| | | | llvm-svn: 118494
* Introduce clang_getSpellingLocation() into libclang, to provide theDouglas Gregor2010-11-094-8/+47
| | | | | | | | | | | location where we're spelling a token even within a macro. clang_getInstantiationLocation() tells where we instantiated the macro. I'm still not thrilled with the CXSourceLocation/CXSourceRange APIs, since they gloss over macro-instantiation information. llvm-svn: 118492
* c-index-test: Be available on Cygwin by using Win32's logic.NAKAMURA Takumi2010-11-091-1/+12
| | | | llvm-svn: 118479
* Add CursorVisitor::VisitBinaryOperator() to explicitly handle the case where ↵Ted Kremenek2010-11-081-0/+90
| | | | | | | | | we can blow out the stack due to deeply nested BinaryOperators. This is done by turning the explicit recursion into being data recursive. Fixes: <rdar://problem/8289205> llvm-svn: 118444
* Remove broken support for variadic templates, along with the variousDouglas Gregor2010-11-071-2/+2
| | | | | | | | | | | | | abstractions (e.g., TemplateArgumentListBuilder) that were designed to support variadic templates. Only a few remnants of variadic templates remain, in the parser (parsing template type parameter packs), AST (template type parameter pack bits and TemplateArgument::Pack), and Sema; these are expected to be used in a future implementation of variadic templates. But don't get too excited about that happening now. llvm-svn: 118385
* Teach clang_getCursorReferenced() that aDouglas Gregor2010-11-051-0/+12
| | | | | | | | 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
* libclang: Enable requesting a larger stack for several libclang entry pointsDaniel Dunbar2010-11-051-1/+2
| | | | | | using "safety" threads. llvm-svn: 118278
* libclang: Add some support for running certain entry points in a "safety"Daniel Dunbar2010-11-053-4/+43
| | | | | | | thread, primarily to get a larger stack. - Yes, I feel dirty. llvm-svn: 118274
* Fix 80-col violas.Daniel Dunbar2010-11-051-9/+11
| | | | llvm-svn: 118273
* libclang: Add clang_executeOnThread, for use in c-index-test (and only there,Daniel Dunbar2010-11-043-0/+7
| | | | | | preferably). Good thing c-index-test is written in C!!!! llvm-svn: 118223
* Implement -working-directory.Argyrios Kyrtzidis2010-11-033-7/+17
| | | | | | | | | | | | | | | | | | | When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't require the user to actually change the working directory) and to help reproduce test cases when the reproduction work comes along. --FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains the working directory value if set). --FileSystemOptions are passed around to various interfaces that perform file operations. --Opening & reading the content of files should be done only through FileManager. This is useful in general since file operations will be abstracted in the future for the reproduction mechanism. FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same FileManager but with different FileSystemOptions. Addresses rdar://8583824. llvm-svn: 118203
* Added cursor visitor that takes a block as an argument. Tested compilingDavid Chisnall2010-11-032-0/+36
| | | | | | | libclang with both clang -fblocks and gcc (no blocks support). Only exposed in the header to compilers that do have blocks support. llvm-svn: 118170
* Improve source-location information for CXXConstructExpr nodes, byDouglas Gregor2010-11-031-1/+28
| | | | | | | | | ensuring that they cover all of their child nodes. There's still a clang_getCursor()-related issue with CXXFunctionalCastExprs with CXXConstructExprs as children (see FIXME in the test case); I'll look at that separately. llvm-svn: 118132
* Don't add Decls with an invalid location to DeclsInContainer.Ted Kremenek2010-11-021-1/+2
| | | | llvm-svn: 118111
* Hack to workaround deficiency in ObjC ASTs. Functions and variables may be ↵Ted Kremenek2010-11-021-27/+121
| | | | | | | | | | | declared within an @implementation, but we have no way to record that information in the AST. This may cause CursorVisitor to miss these Decls when doing a AST walk. Fixes <rdar://problem/8595462>. llvm-svn: 118109
* Encapsulate within CXCursor the notion of whether a VarDecl* is the first ↵Ted Kremenek2010-11-013-7/+47
| | | | | | | | | | | | Decl in a DeclGroup. We use this to recover some context that is currently not modeled directly in the AST. Currently VarDecl's cannot properly determine their source range because they have no context on whether or not they appear in a DeclGroup. For the meantime, this bandaid suffices in libclang since that is where the correct SourceRange is directly needed. Fixes <rdar://problem/8595749>. llvm-svn: 117973
* Do not compare invalid source locationsDouglas Gregor2010-11-011-6/+5
| | | | llvm-svn: 117946
* Remove old CrashTracer cruft from CIndex.Ted Kremenek2010-10-291-89/+1
| | | | llvm-svn: 117634
* Introduce libclang-level options for C++ precompiled preambles,Douglas Gregor2010-10-271-2/+9
| | | | | | separating out chaining precompiled preambles from non-chaining ones. llvm-svn: 117457
* Teach clang_getCursorReferenced() and friends about BlockDeclRefExprs.Douglas Gregor2010-10-221-0/+4
| | | | llvm-svn: 117167
* Improve the implementation of libclang's token-annotation logic forDouglas Gregor2010-10-211-15/+69
| | | | | | | | | | | | | | | | | entities in the preprocessing record. Previously, we would only end up getting the first token of a preprocessing record annotated correctly. For example, given #include "foo.h" we would only get the '#' annotated as an inclusion directive; the 'include' and '"foo.h"' tokens would be given the general 'processing directive' annotation. Now, we get proper annotations for entities in the preprocessing record. llvm-svn: 117001
* Extend the preprocessing record and libclang with support forDouglas Gregor2010-10-205-4/+53
| | | | | | | | | inclusion directives, keeping track of every #include, #import, etc. in the translation unit. We keep track of the source location and kind of the inclusion, how the file name was spelled, and the underlying file to which the inclusion resolved. llvm-svn: 116952
* Introduce code completion results for Objective-C methods, both whenDouglas Gregor2010-10-181-6/+52
| | | | | | | | | declaring methods and when sending messages to them, by bringing all of the selector into TypedCheck chunks in the completion result. This way, we can improve the sorting of these results to account for the full selector name rather than just the first chunk. llvm-svn: 116746
* Add clang_getLocationForOffset() to libclang, for gives a source location ↵David Chisnall2010-10-153-0/+23
| | | | | | from a character index into a file. llvm-svn: 116587
* Eliminate usage of ObjCSuperExpr used forFariborz Jahanian2010-10-141-1/+0
| | | | | | | 'super' as receiver of property or a setter/getter methods. //rdar: //8525788 llvm-svn: 116483
* Don't claim that things that are Objective-C keywords if preceded by an @ ↵David Chisnall2010-10-131-1/+3
| | | | | | | | | | are keywords unless they are preceded by an @. For example, don't claim that end is a keyword in: unsigned end; llvm-svn: 116439
OpenPOWER on IntegriCloud