summaryrefslogtreecommitdiffstats
path: root/clang/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactoring of Diagnostic class.Argyrios Kyrtzidis2010-11-184-6/+11
| | | | | | | | | | | -Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class. -DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units. -The rest of the state in Diagnostic object is considered related and tied to one translation unit. -Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a SourceLocation instead of a FullSourceLoc. -Reflect the changes to various interfaces. llvm-svn: 119730
* CursorVisitor: switch remaining expressions overTed Kremenek2010-11-181-127/+93
| | | | | | | to the data-recursion algorithm. CursorVisitor now no longer subclasses StmtVisitor. llvm-svn: 119596
* CursorVisitor: migrate handling ofTed Kremenek2010-11-181-71/+98
| | | | | | | | 'DependentScopeDeclRefExpr' and 'CXXDependentScopeMemberExpr' to the data-recursion algorithm. llvm-svn: 119591
* Make definition of CXTranslationUnitImpl privateTed Kremenek2010-11-178-0/+31
| | | | | | to libclang. llvm-svn: 119585
* When libclang is walking a member access expression, don't walk intoDouglas Gregor2010-11-171-1/+11
| | | | | | | | an implicit "this"; it causes clang_getCursor() to find the implicit "this" expression (which isn't written in the source!) rather than the actual member. llvm-svn: 119516
* When comparing the source range of a declaration against the region ofDouglas Gregor2010-11-171-7/+47
| | | | | | | | | interest (e.g., as used by clang_getCursor()), count the decl-specifier-seq as part of the source range, as we do for clang_annotateTokens(). Makes clang_getCursor() work properly for the result types of functions, for example. llvm-svn: 119514
* CursorVisitor: Migrate handling ofTed Kremenek2010-11-171-22/+10
| | | | | | | 'SizeOfAlignOfExpr' and 'CXXSCalarValueInitExpr' to data-recursion algorithm. llvm-svn: 119452
* For an Objective-C @synthesize statement, e.g.,Douglas Gregor2010-11-171-0/+8
| | | | | | | | | @synthesize foo = _foo; keep track of the location of the ivar ("_foo"). Teach libclang to visit the ivar as a member reference. llvm-svn: 119447
* CursorVisitor: migrate handling of CXXUuidofExpr toTed Kremenek2010-11-171-14/+6
| | | | | | data-recursion algorithm. llvm-svn: 119444
* CursorVisitor: migrate handling of UnaryTypeTraitExprTed Kremenek2010-11-171-5/+4
| | | | | | to data-recursion algorithm. llvm-svn: 119443
* CursorVisitor: refactor visitation ofTed Kremenek2010-11-171-21/+26
| | | | | | | explicit template args within data-recursion algorithm. llvm-svn: 119442
* CursorVisitor: migrate handling ofTed Kremenek2010-11-171-19/+31
| | | | | | | AddrLabelExpr to data-recursion algorithm, and unify that reasoning with GotoStmt. llvm-svn: 119441
* CursorVisitor: migrate handling ofTed Kremenek2010-11-171-8/+5
| | | | | | VAArgExpr to data-recursion algorithm. llvm-svn: 119440
* CursorVisitor: migrate handling ofTed Kremenek2010-11-171-12/+6
| | | | | | CXXTypeidExpr to data-recursion algorithm. llvm-svn: 119439
* CursorVisitor: migrate handling ofTed Kremenek2010-11-171-6/+6
| | | | | | TypesCompatibleExpr to data-recursion algorithm. llvm-svn: 119438
* CursorVisitor: Migrate CXXUnresolvedConstructExpr over to data-recursive ↵Ted Kremenek2010-11-171-10/+7
| | | | | | algorithm. llvm-svn: 119437
* Fix source-range information for Objective-C properties. Previously,Douglas Gregor2010-11-172-4/+28
| | | | | | | | | | | | we were just getting a range covering only the property name, which is certainly not correct (and broke token annotation, among other things). Also, teach libclang about the relationship between @synthesize/@dynamic and @property, so we get property name and cursor-reference information for @synthesize and @dynamic. llvm-svn: 119409
* MSVC doesn't like the noinline attribute at the end of a declaration. Try ↵Benjamin Kramer2010-11-161-1/+1
| | | | | | the other side. llvm-svn: 119349
* 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
* Change CXTranslationUnit to not directly cast to an ASTUnit*,Ted Kremenek2010-11-1612-191/+311
| | | | | | | | | | | | | | | | | | | but to wrap both an ASTUnit and a "string pool" that will be used for fast USR generation. This requires a bunch of mechanical changes, as there was a ton of code that assumed that CXTranslationUnit and ASTUnit* were the same. Along with this change, introduce CXStringBuf, which provides an llvm::SmallVector<char> backing for repeatedly generating CXStrings without a huge amount of malloc() traffic. This requires making some changes to the representation of CXString by renaming a few fields (but keeping the size of the object the same). llvm-svn: 119337
* Add CXString.cpp and CXString.hTed Kremenek2010-11-162-0/+100
| | | | llvm-svn: 119322
* Move CXString creation/management routines intoTed Kremenek2010-11-1610-56/+10
| | | | | | | their own .cpp file and make the interpretation of its flags private. llvm-svn: 119319
* CursorVisitor: cache worklists created for data-recursion to reduce malloc() ↵Ted Kremenek2010-11-151-3/+26
| | | | | | traffic. llvm-svn: 119290
* Add a new expression kind, OpaqueValueExpr, which is useful forJohn McCall2010-11-151-0/+1
| | | | | | | certain internal type-checking procedures as well as for representing certain implicitly-generated operations. Uses to follow. llvm-svn: 119289
* Use LLVM_ATTRIBUTE_NOINLINE instead of attribute((noinline)).Ted Kremenek2010-11-151-1/+2
| | | | llvm-svn: 119287
* Tweak libclang's heuristics for building precompiled preambles andDouglas Gregor2010-11-151-0/+5
| | | | | | | | caching global code-completion results. In particular, don't perform either operation the first time we parse, but do both after the first reparse. llvm-svn: 119285
* Cast pointers instead of returning a new value within RunVisitorWorkList().Ted Kremenek2010-11-151-14/+16
| | | | llvm-svn: 119282
* Annotate CursorVisitor::VisitDataRecursive() with attribute 'noinline'.Ted Kremenek2010-11-151-1/+1
| | | | | | | Clang currently uses a ridiculous amount of stack space when inlining this function, which can lead to premature stack overflows. llvm-svn: 119281
* "Fix" some unintentional fallout from convertingTed Kremenek2010-11-142-4/+13
| | | | | | | | | | | | | | | | | | | | the Stmt* visitation in CursorVisitor to be data-recursive. Since AnnotationTokensWorker explicitly calls CursorVisitor::VisitChildren(), it essentially transforms the data-recursive algorithm in CursorVisitor back into a non-data recursive one. This is particularly bad because the data-recursive algorithm uses more stack space per stack frame, which can cause us to blow the stack in some cases. "Fix" this by making the stack that AnnotationTokensWorker runs in really huge. The real fix is to modify AnnotationTokensWorker not to do the explicit recursive call. llvm-svn: 119047
* CursorVisitor: make data-recursion algorithm the default except for the few ↵Ted Kremenek2010-11-141-73/+22
| | | | | | | | remaining Exprs still covered by the normal recursive visitation. llvm-svn: 119030
* Remove stale #include.Ted Kremenek2010-11-141-3/+0
| | | | llvm-svn: 119028
* Rewrite reverse iteration loop in a more natural countdown manner.Ted Kremenek2010-11-131-4/+2
| | | | llvm-svn: 118990
* 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
OpenPOWER on IntegriCloud