summaryrefslogtreecommitdiffstats
path: root/lib/AST/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* Add clang support for new Objective-C literal syntax for NSDictionary, NSArray,Ted Kremenek2012-03-061-0/+1
| | | | | | | | | | | | | NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting. My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features. Docs are forthcoming to document the implementation and behavior of these features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152137 91177308-0d34-0410-b5e6-96231b3b80d8
* Basic support for name mangling of C++11 lambda expressions. BecauseDouglas Gregor2012-02-201-0/+1
| | | | | | | | | | | | | | | | | | name mangling in the Itanium C++ ABI for lambda expressions is so dependent on context, we encode the number used to encode each lambda as part of the lambda closure type, and maintain this value within Sema. Note that there are a several pieces still missing: - We still get the linkage of lambda expressions wrong - We aren't properly numbering or mangling lambda expressions that occur in default function arguments or in data member initializers. - We aren't (de-)serializing the lambda numbering tables git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150982 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow getting all source locations of selector identifiers in a ObjCMessageExpr.Argyrios Kyrtzidis2011-10-031-0/+1
| | | | | | | | | | | | | Instead of always storing all source locations for the selector identifiers we check whether all the identifiers are in a "standard" position; "standard" position is -Immediately before the arguments: [foo first:1 second:2] -With a space between the arguments: [foo first: 1 second: 2] -For nullary selectors, immediately before ']': [foo release] In such cases we infer the locations instead of storing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140987 91177308-0d34-0410-b5e6-96231b3b80d8
* Move VTable builder to ASTPeter Collingbourne2011-09-261-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140510 91177308-0d34-0410-b5e6-96231b3b80d8
* Move VTT builder to ASTPeter Collingbourne2011-09-261-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140501 91177308-0d34-0410-b5e6-96231b3b80d8
* lib/AST/CMakeLists.txt: Update LLVM_USED_LIBS, not to miss symbols with ↵NAKAMURA Takumi2011-07-231-1/+1
| | | | | | building shared lib. Thanks to Ryuta Suzuki. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135864 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak CMake buildDouglas Gregor2011-02-281-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126653 91177308-0d34-0410-b5e6-96231b3b80d8
* Add CMake dependencies so that LLVM_USED_LIBS order doesn't matter.Jeffrey Yasskin2011-02-111-0/+2
| | | | | | | | I also sorted the tools/driver dependencies since their order no longer matters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125417 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: LLVM_NO_RTTI must be obsolete now!NAKAMURA Takumi2011-02-101-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125275 91177308-0d34-0410-b5e6-96231b3b80d8
* Move name mangling support from CodeGen to AST. In thePeter Collingbourne2011-01-131-0/+3
| | | | | | | | | | | | | | process, perform a number of refactorings: - Move MiscNameMangler member functions to MangleContext - Remove GlobalDecl dependency from MangleContext - Make MangleContext abstract and move Itanium/Microsoft functionality to their own classes/files - Implement ASTContext::createMangleContext and have CodeGen use it No (intended) functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123386 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill FullExpr, as it was not, in fact, used anywhere in the code base.John McCall2010-12-071-1/+0
| | | | | | | | | I'm not opposed to the idea in concept, but there's no point in preserving abortive experiments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121083 91177308-0d34-0410-b5e6-96231b3b80d8
* Add -cc1 -ast-dump-xml, an excessively detailed XML dump of the internalsJohn McCall2010-11-241-0/+1
| | | | | | | | | | | | | | | of the ASTs. Only available in assertions builds. No stability guarantee. This is intended solely as a debugging tool. I'm not sure if the goals are sufficiently aligned with the XML printer to allow a common implementation. Currently just falls back on the StmtDumper to display statements, which means it doesn't produce valid XML in those cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120088 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "CMake: Update to use standard CMake dependency tracking facilities ↵Michael J. Spencer2010-09-131-13/+4
| | | | | | | | | | | | | instead" This reverts commit r113631 Conflicts: CMakeLists.txt lib/CodeGen/CMakeLists.txt git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113817 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: Update to use standard CMake dependency tracking facilities insteadMichael J. Spencer2010-09-101-4/+13
| | | | | | of whatever we were using before... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113631 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up some of the CMake dependenciesDouglas Gregor2010-09-081-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113416 91177308-0d34-0410-b5e6-96231b3b80d8
* Generate Attr subclasses with TableGen.Sean Hunt2010-08-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Now all classes derived from Attr are generated from TableGen. Additionally, Attr* is no longer its own linked list; SmallVectors or Attr* are used. The accompanying LLVM commit contains the updates to TableGen necessary for this. Some other notes about newly-generated attribute classes: - The constructor arguments are a SourceLocation and a Context&, followed by the attributes arguments in the order that they were defined in Attr.td - Every argument in Attr.td has an appropriate accessor named getFoo, and there are sometimes a few extra ones (such as to get the length of a variadic argument). Additionally, specific_attr_iterator has been introduced, which will iterate over an AttrVec, but only over attributes of a certain type. It can be accessed through either Decl::specific_attr_begin/end or the global functions of the same name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111455 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement support for member pointers under the Microsoft C++ ABI in theCharles Davis2010-08-161-0/+2
| | | | | | | | | AST library. This also adds infrastructure for supporting multiple C++ ABIs in the AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111117 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce Expr::Classify and Expr::ClassifyModifiable, which determine the ↵Sebastian Redl2010-06-281-0/+1
| | | | | | classification of an expression under the C++0x taxology (value category). Reimplement isLvalue and isModifiableLvalue using these functions. No regressions in the test suite from this, and my rough performance check doesn't show any regressions either. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107007 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake build system for ARM NEON generation.Douglas Gregor2010-06-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106220 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake build for new attribute changes.Sean Hunt2010-06-171-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106188 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert DeclNodes to use TableGen.Sean Hunt2010-05-301-1/+1
| | | | | | | | The macros required for DeclNodes use have changed to match the use of StmtNodes. The FooFirst enumerator constants have been named firstFoo to match usage elsewhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105165 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak CMake build.Douglas Gregor2010-05-051-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103077 91177308-0d34-0410-b5e6-96231b3b80d8
* Sort calls to add_clang_library()Kovarththanan Rajaratnam2010-03-221-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99191 91177308-0d34-0410-b5e6-96231b3b80d8
* Split C++ friend declarations into their own header/implementation file.John McCall2010-03-111-0/+1
| | | | | | | | | | | I'm expecting this portion of the AST to grow and change, and I'd like to be able to do that with minimal recompilation. If this proves unnecessary when access control is fully-implemented, I'll fold the classes back into DeclCXX.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98249 91177308-0d34-0410-b5e6-96231b3b80d8
* Allocate ASTRecordLayout objects using the allocator associated with ASTContext.Ted Kremenek2010-03-081-1/+2
| | | | | | | This allows them to be allocated using a BumpPtrAllocated in the common case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97978 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the diagnostic argument formatting function out of Sema and makeDouglas Gregor2010-02-091-0/+1
| | | | | | | | it available within the AST library, of which Sema is one client. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95701 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial skeleton of an AST "importer", which will take AST elements fromDouglas Gregor2010-02-051-0/+1
| | | | | | | | | | one context and import them into another context, merging them according to language-specific rules. This is a skeleton. It doesn't work, it isn't testable, but I want it in version control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95395 91177308-0d34-0410-b5e6-96231b3b80d8
* Make clone() method out-of-line for Attr classes.Anton Korobeynikov2010-01-101-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93120 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove CharUnits::toString() to eliminate dependence on <string>.Ken Dyck2009-12-231-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91978 91177308-0d34-0410-b5e6-96231b3b80d8
* Add and tidy doxygen comments and move implementation of toString() to newlyKen Dyck2009-12-181-0/+1
| | | | | | | created CharUnits.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91719 91177308-0d34-0410-b5e6-96231b3b80d8
* Check in a rudimentary FullExpr class that isn't used anywhere yet. Rename ↵Anders Carlsson2009-12-161-0/+1
| | | | | | Action::FullExpr to Action::MakeFullExpr to avoid name clashes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91494 91177308-0d34-0410-b5e6-96231b3b80d8
* Move all of the type-printing logic to its own C++ source fileDouglas Gregor2009-11-101-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86629 91177308-0d34-0410-b5e6-96231b3b80d8
* Extract TemplateArgument into a new header just for common templateJohn McCall2009-10-291-0/+1
| | | | | | | | | | classes. Move its implementation into a new module. This will seem marginally more justified in a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85499 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor the code that walks a C++ inheritance hierarchy, searchingDouglas Gregor2009-10-061-0/+1
| | | | | | | | | | | for bases, members, overridden virtual methods, etc. The operations isDerivedFrom and lookupInBases are now provided by CXXRecordDecl, rather than by Sema, so that CodeGen and other clients can use them directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83396 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMakeLists.Benjamin Kramer2009-08-191-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79416 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a Profile function for statements so that we can (eventually) determineDouglas Gregor2009-07-281-0/+1
| | | | | | | when statements and expressions are equivalent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77284 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMakeDaniel Dunbar2009-07-191-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76351 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the source-level CFG from libAST to libAnalysis.Ted Kremenek2009-07-161-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76092 91177308-0d34-0410-b5e6-96231b3b80d8
* Lexically order files in CMakeLists.txt files.Ted Kremenek2009-07-151-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75832 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake files.Argyrios Kyrtzidis2009-07-061-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74864 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename 'ASTNode' -> 'ASTLocation'.Argyrios Kyrtzidis2009-07-061-1/+1
| | | | | | ASTLocation is a much better name for its intended purpose which to represent a "point" into the AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74858 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce the DeclReferenceMap class inside the AST library.Argyrios Kyrtzidis2009-07-051-0/+1
| | | | | | | | | DeclReferenceMap (similar to ParentMap) is a helper class for mapping Decls to the AST nodes that reference them. A client will initialize it by passing an ASTContext to its constructor and later use it to iterate over the references of a Decl. References are mapped and retrieved using the primary declaration (Decl::getPrimaryDecl()) of a particular Decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74801 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce ASTNode class into the AST library.Argyrios Kyrtzidis2009-07-051-0/+1
| | | | | | ASTNode is an immutable pair of a Decl and Stmt. If Stmt is not null, Decl should be its immediate parent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74797 91177308-0d34-0410-b5e6-96231b3b80d8
* move the various builtins stuff from libast to libbasic. ThisChris Lattner2009-06-141-1/+0
| | | | | | | fixes a layering violation in lib/Basic/Targets.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor and clean up the AST printer, so that it uses a DeclVisitor,Douglas Gregor2009-05-301-0/+1
| | | | | | | | | | | walks through DeclContexts properly, and prints more of the information available in the AST. The functionality is still available via -ast-print, -ast-dump, etc., and also via the new member functions Decl::dump() and Decl::print(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72597 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix CMake build for AST XML dumperDouglas Gregor2009-05-211-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72228 91177308-0d34-0410-b5e6-96231b3b80d8
* AST XML dump, from Olaf Krzikalla!Douglas Gregor2009-05-211-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72224 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the serialization code that predates precompiledDouglas Gregor2009-04-221-3/+0
| | | | | | | | headers. Future approaches to (de-)serializing ASTs will be based on the PCH infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69828 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake file. Patch by Brian Diekelman!Ted Kremenek2009-04-011-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68232 91177308-0d34-0410-b5e6-96231b3b80d8
* CMake: remove TranslationUnit.cpp from build (file has been removed).Cedric Venet2009-03-281-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67944 91177308-0d34-0410-b5e6-96231b3b80d8