summaryrefslogtreecommitdiffstats
path: root/clang/tools
Commit message (Collapse)AuthorAgeFilesLines
* Implement support for pack expansions whose pattern is a non-typeDouglas Gregor2011-01-031-0/+1
| | | | | | | | | | | | | | | | | template argument (described by an expression, of course). For example: template<int...> struct int_tuple { }; template<int ...Values> struct square { typedef int_tuple<(Values*Values)...> type; }; It also lays the foundation for pack expansions in an initializer-list. llvm-svn: 122751
* Expose Objective-C type encodings of declarations to libclang users. This ↵David Chisnall2010-12-303-0/+31
| | | | | | also adds a method in ASTContext which encodes FunctionDecls using the same encoding format that is used for Objective-C methods. llvm-svn: 122639
* The -fshort-wchar option causes wchar_t to become unsigned, in addition to beingChris Lattner2010-12-253-4/+7
| | | | | | | 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
* Chris Lattner has strong opinions about directoryTed Kremenek2010-12-232-3/+3
| | | | | | | | | | | | layout. :) Rename the 'EntoSA' directories to 'StaticAnalyzer'. Internally we will still use the 'ento' namespace for the analyzer engine (unless there are further sabre rattlings...). llvm-svn: 122514
* Rename headers: 'clang/GR' 'clang/EntoSA' andTed Kremenek2010-12-232-3/+3
| | | | | | update Makefile. llvm-svn: 122493
* [analyzer] Refactoring: Move checkers into lib/GR/Checkers and their own ↵Argyrios Kyrtzidis2010-12-222-1/+2
| | | | | | library, libclangGRCheckers llvm-svn: 122422
* [analyzer] Refactoring: lib/Checker -> lib/GR and libclangChecker -> ↵Argyrios Kyrtzidis2010-12-222-2/+2
| | | | | | libclangGRCore llvm-svn: 122421
* Introduced raw_identifier token kind.Abramo Bagnara2010-12-221-14/+5
| | | | llvm-svn: 122394
* When determining which preprocessed entities to traverse in libclang,Douglas Gregor2010-12-211-1/+14
| | | | | | | | take into account the region of interest. Otherwise, we may fail to traverse some important preprocessed entity cursors. Fixes <rdar://problem/8554072>. llvm-svn: 122350
* Replace all uses of PathV1::makeAbsolute with PathV2::fs::make_absolute.Michael J. Spencer2010-12-211-12/+16
| | | | llvm-svn: 122340
* Teach clang_getCursorSemanticParent() andDouglas Gregor2010-12-211-3/+29
| | | | | | | | clang_getCursorLexicalParent() to cope with class and function templates, along with the parent of the translation unit. Fixes PR8761 and PR8766. llvm-svn: 122324
* Clean up the handling of template argument packs, especially in theDouglas Gregor2010-12-201-4/+1
| | | | | | | area of printing template arguments. The functionality changes here are limited to cases of variadic templates that aren't yet enabled. llvm-svn: 122250
* Introduce a new type, PackExpansionType, to capture types that areDouglas Gregor2010-12-201-0/+5
| | | | | | | | | | | | | | | | | | | | pack expansions, e.g. given template<typename... Types> struct tuple; template<typename... Types> struct tuple_of_refs { typedef tuple<Types&...> types; }; the type of the "types" typedef is a PackExpansionType whose pattern is Types&. This commit introduces support for creating pack expansions for template type arguments, as above, but not for any other kind of pack expansion, nor for any form of instantiation. llvm-svn: 122223
* Replace all uses of PathV1::get{Basename,Dirname,Suffix} with their PathV2 ↵Michael J. Spencer2010-12-181-2/+2
| | | | | | equivalents. llvm-svn: 122140
* Replace all uses of PathV1::getLast with PathV2::filename.Michael J. Spencer2010-12-182-5/+4
| | | | llvm-svn: 122117
* MemoryBuffer API update.Michael J. Spencer2010-12-162-7/+5
| | | | llvm-svn: 121956
* Update for LLVM API change.Daniel Dunbar2010-12-161-2/+5
| | | | llvm-svn: 121950
* Added missing IgnoreParens().Abramo Bagnara2010-12-141-1/+1
| | | | llvm-svn: 121795
* Eliminate the branching in QualType::getTypePtr() by providing aDouglas Gregor2010-12-101-6/+6
| | | | | | | | | | | | | | | | | | | | common base for ExtQuals and Type that stores the underlying type pointer. This results in a 2% performance win for -emit-llvm on a typical C file, with 1% memory growth in the AST. Note that there is an API change in this optimization: QualType::getTypePtr() can no longer be invoked on a NULL QualType. If the QualType might be NULL, use QualType::getTypePtrOrNull(). I've audited all uses of getTypePtr() in the code base and changed the appropriate uses over to getTypePtrOrNull(). A future optimization opportunity would be to distinguish between cast/dyn_cast and cast_or_null/dyn_cast_or_null; for the former, we could use getTypePtr() rather than getTypePtrOrNull(), to take another branch out of the cast/dyn_cast implementation. llvm-svn: 121489
* Added ParenType type node.Abramo Bagnara2010-12-101-0/+5
| | | | llvm-svn: 121488
* Fixed version of 121435.Rafael Espindola2010-12-101-3/+14
| | | | llvm-svn: 121472
* In clang_getCursor(), don't override a preprocessing cursor withinDouglas Gregor2010-12-101-0/+6
| | | | | | another preprocessing cursor, since we want the outermost one. llvm-svn: 121470
* Revert my previous patch to make the valgrind bots happy.Rafael Espindola2010-12-101-14/+3
| | | | llvm-svn: 121460
* Extend libclang debugging output for clang_getCursor() to show the ↵Douglas Gregor2010-12-101-0/+18
| | | | | | definition we found llvm-svn: 121451
* Update clang for the API changes in the cfi patch.Rafael Espindola2010-12-091-3/+14
| | | | llvm-svn: 121435
* Use error_code instead of std::string* for MemoryBuffer.Michael J. Spencer2010-12-092-2/+7
| | | | llvm-svn: 121378
* Fix build.Anders Carlsson2010-12-091-1/+1
| | | | llvm-svn: 121341
* Remove extra namespace specifier.Ted Kremenek2010-12-091-1/+1
| | | | llvm-svn: 121334
* DenseMapInfo is a 'struct', not a 'class'.Ted Kremenek2010-12-091-1/+1
| | | | llvm-svn: 121321
* Add new libclang hooks for CXCursorSet, aTed Kremenek2010-12-083-2/+76
| | | | | | | DenseMap-backed hashtable for doing client-side management of CXCursors within a set. llvm-svn: 121318
* Remove the TypesCompatibleExprClass AST node. Merge its functionality into ↵Francois Pichet2010-12-082-6/+0
| | | | | | BinaryTypeTraitExpr. llvm-svn: 121298
* Fix bug where annotate tokens was not working for BinaryTypeTraitExpr.Francois Pichet2010-12-081-1/+1
| | | | | | CIndex's EnqueueVisitor must visit elements backward apparently. llvm-svn: 121247
* Type traits intrinsic implementation: __is_base_of(T, U)Francois Pichet2010-12-072-0/+8
| | | | | | New AST node introduced: BinaryTypeTraitExpr; to be reused for more intrinsics. llvm-svn: 121074
* Use atomic operations for libclang's object count tracking.Douglas Gregor2010-12-071-3/+4
| | | | llvm-svn: 121073
* Rename CXXExprWithTemporaries -> ExprWithCleanups; there's no theoreticalJohn McCall2010-12-061-1/+1
| | | | | | reason this is limited to C++, and it's certainly not limited to temporaries. llvm-svn: 120996
* More anonymous struct/union redesign. This one deals with anonymous field ↵Francois Pichet2010-12-041-2/+2
| | | | | | | | | | | | | | | | used in a constructor initializer list: struct X { X() : au_i1(123) {} union { int au_i1; float au_f1; }; }; clang will now deal with au_i1 explicitly as an IndirectFieldDecl. llvm-svn: 120900
* Simplify the ASTs by consolidating ObjCImplicitGetterSetterExpr and ↵John McCall2010-12-022-3/+1
| | | | | | | | ObjCPropertyRefExpr into the latter. llvm-svn: 120643
* When using a precompiled preamble with detailed preprocessing records,Douglas Gregor2010-11-301-7/+13
| | | | | | | | | | trap the serialized preprocessing records (macro definitions, macro instantiations, macro definitions) from the generation of the precompiled preamble, then replay those when walking the list of preprocessed entities. This eliminates a bug where clang_getCursor() wasn't able to find preprocessed-entity cursors in the preamble. llvm-svn: 120396
* De-C99-ify for loopDouglas Gregor2010-11-301-1/+2
| | | | llvm-svn: 120395
* Teach c-index-test to reparse the source file a few times when testingDouglas Gregor2010-11-301-17/+36
| | | | | | | | clang_getCursor() via -cursor-at=??? and CINDEXTEST_EDITING is set in the environment. This mirrors how we test code completion and source-loading in the presence of this environment variable. llvm-svn: 120392
* Merge System into Support.Michael J. Spencer2010-11-296-14/+14
| | | | llvm-svn: 120297
* now the FileManager has a FileSystemOpts ivar, stop threadingChris Lattner2010-11-232-6/+5
| | | | | | | | | FileSystemOpts through a ton of apis, simplifying a lot of code. This also fixes a latent bug in ASTUnit where it would invoke methods on FileManager without creating one in some code paths in cindextext. llvm-svn: 120010
* give FileManager a 'FileSystemOptions' ivar, which will be usedChris Lattner2010-11-231-1/+3
| | | | | | | to simplify a bunch of code in it. It should ultimately get inlined into FileManager. llvm-svn: 120007
* Fix a bunch of IndirectFieldDecl-related warnings.Benjamin Kramer2010-11-211-0/+1
| | | | | | - Negative ChainingSize doesn't make sense, make it unsigned. llvm-svn: 119943
* remove old compatibility APIs, use StringRef versions instead.Chris Lattner2010-11-211-2/+1
| | | | llvm-svn: 119935
* Implement a simple hash function for libclang cursorsDouglas Gregor2010-11-203-0/+11
| | | | llvm-svn: 119876
* Implement clang_getCanonicalCursor() in libclang, which does the obvious thing.Douglas Gregor2010-11-193-0/+12
| | | | llvm-svn: 119874
* Extend the libclang diagnostic API to provide information about theDouglas Gregor2010-11-194-2/+100
| | | | | | option name, category ID, and category name corresponding to a diagnostic. llvm-svn: 119802
* getNumErrors() -> hasErrorOccurred()Argyrios Kyrtzidis2010-11-191-1/+1
| | | | llvm-svn: 119765
* Get the number of errors reported from the diagnostic client, in ↵Argyrios Kyrtzidis2010-11-181-2/+2
| | | | | | clang_parseTranslationUnit_Impl. llvm-svn: 119745
OpenPOWER on IntegriCloud