summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/PCHReaderDecl.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Read/write specialization info of static data members for PCH.Argyrios Kyrtzidis2010-07-041-0/+7
| | | | llvm-svn: 107593
* When setting the anonymous namespace at PCH reading, it may still be ↵Argyrios Kyrtzidis2010-07-031-6/+2
| | | | | | | | initializing so avoid the invariant checks at NamespaceDecl::setAnonymousNamespace(). llvm-svn: 107566
* Lazily declare default constructors. We now delay the construction ofDouglas Gregor2010-07-031-0/+1
| | | | | | | | | | | | | | | | | | declarations for implicit default constructors, copy constructors, copy assignment operators, and destructors. On a "simple" translation unit that includes a bunch of C++ standard library headers, we generate relatively few of these implicit declarations now: 4/159 implicit default constructors created 18/236 implicit copy constructors created 70/241 implicit copy assignment operators created 0/173 implicit destructors created And, on this translation unit, this optimization doesn't really provide any benefit. I'll do some more performance measurements soon, but this completes the implementation work for <rdar://problem/8151045>. llvm-svn: 107551
* Lazily declare implicit copy constructors.Douglas Gregor2010-07-021-0/+1
| | | | llvm-svn: 107543
* Read/write CastExpr's CXXBaseSpecifierArray for PCH.Argyrios Kyrtzidis2010-07-021-13/+2
| | | | llvm-svn: 107542
* Lazily declare copy-assignment operators.Douglas Gregor2010-07-021-0/+1
| | | | llvm-svn: 107521
* Lazily declare the implicitly-declared destructor in a C++ class.Douglas Gregor2010-07-021-0/+1
| | | | llvm-svn: 107510
* Handle CXXConstructorDecl, CXXDestructorDecl, and CXXConversionDecl for PCH.Argyrios Kyrtzidis2010-07-021-8/+74
| | | | | | <vector> header can be used correctly through PCH now. llvm-svn: 107483
* Fix reading FunctionDecls from PCH.Argyrios Kyrtzidis2010-07-021-25/+26
| | | | llvm-svn: 107477
* Fix reading ClassTemplateDecl's ClassTemplateSpecializationDecls and ↵Argyrios Kyrtzidis2010-07-021-7/+9
| | | | | | | | ClassTemplatePartialSpecializationDecls. Store/read also their template arguments because they may be initializing and not be able to provide them. llvm-svn: 107476
* Fully read/write CXXRecordDecl for PCH.Argyrios Kyrtzidis2010-07-021-31/+49
| | | | llvm-svn: 107475
* Generally types expect an initialized TypeDecl; its safer and less ↵Argyrios Kyrtzidis2010-07-021-8/+15
| | | | | | complicated to delay PCH reading the type of a TypeDecl. llvm-svn: 107469
* Add some side-effect free Create methods for TypeDecl subclasses and use ↵Argyrios Kyrtzidis2010-07-021-8/+7
| | | | | | them for PCH reading. llvm-svn: 107468
* Fix PCH support for UnresolvedUsingTypenameDecl and UnresolvedUsingValueDecl.Argyrios Kyrtzidis2010-06-301-4/+4
| | | | llvm-svn: 107268
* Support C++ friend declarations for PCH.Argyrios Kyrtzidis2010-06-291-2/+15
| | | | | | | | | | | | This commit 'introduces' a slightly different way to restore the state of the AST object. It makes PCHDeclReader/PCHDeclWriter friends and gives them access to the private members of the object. The rationale is to avoid using/modifying the AST interfaces for PCH read/write so that to: -Avoid complications with objects that have side-effects during creation or when using some setters. -Not 'pollute' the AST interface with methods only used by the PCH reader/writer -Allow AST objects to be read-only. llvm-svn: 107219
* Modify the way sub-statements are stored and retrieved from PCH.Argyrios Kyrtzidis2010-06-281-7/+9
| | | | | | | | | | | | | | | Before this commit, sub-stmts were stored as encountered and when they were placed in the Stmts stack we had to know what index each stmt operand has. This complicated supporting variable sub-stmts and sub-stmts that were contained in TypeSourceInfos, e.g. x = sizeof(int[1]); would crash PCH. Now, sub-stmts are stored in reverse order, from last to first, so that when reading them, in order to get the next sub-stmt we just need to pop the last stmt from the stack. This greatly simplified the way stmts are written and read (just use PCHWriter::AddStmt and PCHReader::ReadStmt accordingly) and allowed variable stmt operands and TypeSourceInfo exprs. llvm-svn: 107087
* Fix various bugs in recent commits for C++ PCH.Argyrios Kyrtzidis2010-06-281-0/+4
| | | | llvm-svn: 106995
* Support NonTypeTemplateParmDecl for PCH.Argyrios Kyrtzidis2010-06-251-2/+12
| | | | llvm-svn: 106860
* Support C++ class template specializations and partial specializations for PCH.Argyrios Kyrtzidis2010-06-231-26/+53
| | | | llvm-svn: 106625
* Patch to provide separate ASTs for multiple ObjC class extension Fariborz Jahanian2010-06-221-0/+2
| | | | | | declarations (implements radar 7928731). llvm-svn: 106597
* Support emitting/reading function templates to/from PCH.Argyrios Kyrtzidis2010-06-221-5/+87
| | | | llvm-svn: 106534
* Combine ClassTemplateDecl's PreviousDeclaration with CommonPtr, as in ↵Argyrios Kyrtzidis2010-06-211-2/+3
| | | | | | FunctionTemplateDecl. llvm-svn: 106412
* Support PCH emitting/reading of using declarations.Argyrios Kyrtzidis2010-06-201-4/+4
| | | | llvm-svn: 106404
* Include a hack to allow loading of templated CXXRecordDecls and test ↵Argyrios Kyrtzidis2010-06-191-0/+3
| | | | | | template reading from PCH. llvm-svn: 106393
* Initial support for reading templates from PCH.Argyrios Kyrtzidis2010-06-191-5/+99
| | | | llvm-svn: 106392
* Initial support for writing templates to PCH.Argyrios Kyrtzidis2010-06-191-4/+0
| | | | llvm-svn: 106391
* Implement first TD-based usage of attributes.Alexis Hunt2010-06-161-15/+15
| | | | | | | | | | | | | | | | | Currently, there are two effective changes: - Attr::Kind has been changed to attr::Kind, in a separate namespace rather than the Attr class. This is because the enumerator needs to be visible to parse. - The class definitions for the C++0x attributes other than aligned are generated by TableGen. The specific classes generated by TableGen are controlled by an array in TableGen (see the accompanying commit to the LLVM repository). I will be expanding the amount of code generated as I develop the new attributes system while initially keeping it confined to these attributes. llvm-svn: 106172
* Fix PCH issue. Attributes of a declaration were truncated to just one when ↵Argyrios Kyrtzidis2010-06-111-1/+1
| | | | | | the decl was read from a PCH file. llvm-svn: 105852
* Added AccessSpecDecl node.Abramo Bagnara2010-06-051-0/+10
| | | | llvm-svn: 105525
* Remember type source information for Objective C property declarations.John McCall2010-06-041-2/+2
| | | | llvm-svn: 105484
* Restructure how we interpret block-literal declarators. Correctly handleJohn McCall2010-06-041-0/+1
| | | | | | | the case where we pick up block arguments from a typedef. Save the block signature as it was written, and preserve same through PCH. llvm-svn: 105466
* Hack in some really terrible C++ record PCH support that I need right now.John McCall2010-06-031-0/+31
| | | | | | | | This is required in order to test: The ASTImporter should set base classes after formally entering the definition. llvm-svn: 105401
* Convert DeclNodes to use TableGen.Alexis 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. llvm-svn: 105165
* Roll back r104941.John McCall2010-05-281-1/+0
| | | | llvm-svn: 104990
* Add a new attribute on records, __attribute__((adl_invisible)), and defineJohn McCall2010-05-281-0/+1
| | | | | | | | | | | | the x86-64 __va_list_tag with this attribute. The attribute causes the affected type to behave like a fundamental type when considered by ADL. (x86-64 is the only target we currently provide with a struct-based __builtin_va_list) Fixes PR6762. llvm-svn: 104941
* AST: Add AlignMac68kAttr, not yet used.Daniel Dunbar2010-05-271-0/+1
| | | | llvm-svn: 104800
* AST: Rename PragmaPackAttr to MaxFieldAlignmentAttr, which is more accurate.Daniel Dunbar2010-05-271-1/+1
| | | | llvm-svn: 104795
* Add clang support for IBOutletCollection.Ted Kremenek2010-05-191-0/+7
| | | | llvm-svn: 104135
* Add support for Microsoft's __thiscall, from Steven Watanabe!Douglas Gregor2010-05-181-0/+1
| | | | llvm-svn: 104026
* Implement semantic analysis and an AST representation for the namedDouglas Gregor2010-05-151-0/+1
| | | | | | | | | | | | return value optimization. Sema marks return statements with their NRVO candidates (which may or may not end up using the NRVO), then, at the end of a function body, computes and marks those variables that can be allocated into the return slot. I've checked this locally with some debugging statements (not committed), but there won't be any tests until CodeGen comes along. llvm-svn: 103865
* Merged Elaborated and QualifiedName types.Abramo Bagnara2010-05-111-2/+2
| | | | llvm-svn: 103517
* add PCH support for a bunch of C++ Decls, patch byChris Lattner2010-05-071-16/+270
| | | | | | Andrew Sutton! llvm-svn: 103301
* Remember the number of positive and negative bits used by the enumerators ofJohn McCall2010-05-061-0/+2
| | | | | | | an enum in the enum decl itself. Use some spare bits from TagDecl for this purpose. llvm-svn: 103173
* This patch deals with Sema Part of Setter/Getter synthesisFariborz Jahanian2010-05-051-0/+1
| | | | | | | of properties which are of C++ objects. Code Gen to follow (Radar 7468090). llvm-svn: 103123
* Diagnose unused exception parameters under a different warning groupDouglas Gregor2010-05-031-0/+1
| | | | | | | | (-Wunused-exception-parameter) than normal variables, since it's more common to name and then ignore an exception parameter. This warning is neither enabled by default nor by -Wall. Fixes <rdar://problem/7931045>. llvm-svn: 102931
* More of Sema to implement initialization ofFariborz Jahanian2010-04-281-0/+1
| | | | | | ivar of c++ object types. llvm-svn: 102500
* Recommit r102215, this time being more careful to only set the "principalJohn McCall2010-04-241-0/+5
| | | | | | | declaration" (i.e. the only which will actually be looked up) to have the non-member-operator bit. llvm-svn: 102231
* Revert r102215. This causes clang crash while compiling a test case from gdb ↵Devang Patel2010-04-241-5/+0
| | | | | | testsuite. llvm-svn: 102224
* Transition the last acceptable-result filter kind in LookupResult over to useJohn McCall2010-04-231-0/+5
| | | | | | a simple IDNS mask by introducing a namespace for non-member operators. llvm-svn: 102215
* Keep track of the actual storage specifier written on a variable orDouglas Gregor2010-04-191-2/+4
| | | | | | | | function declaration, since it may end up being changed (e.g., "extern" can become "static" if a prior declaration was static). Patch by Enea Zaffanella and Paolo Bolzoni. llvm-svn: 101826
OpenPOWER on IntegriCloud