summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend
Commit message (Collapse)AuthorAgeFilesLines
* Pacify versions of gcc that think these variables may be usedDuncan Sands2010-07-061-3/+3
| | | | | | | uninitialized (which doesn't seem to be the case), by giving them arbitrary initial values. llvm-svn: 107679
* Read/write function template specializations for PCH, properly this time.Argyrios Kyrtzidis2010-07-062-6/+12
| | | | llvm-svn: 107665
* Add to PCH missing Sema information about VTable uses and dynamic classes.Argyrios Kyrtzidis2010-07-062-0/+58
| | | | llvm-svn: 107664
* Allow a CXXRecordDecl to get a DefinitionData pointer even when its owner is ↵Argyrios Kyrtzidis2010-07-062-87/+118
| | | | | | still initializing. llvm-svn: 107663
* Read/write instantiated-from-member of EnumDecl for PCH.Argyrios Kyrtzidis2010-07-062-2/+3
| | | | llvm-svn: 107662
* Read/write the identifier namespace in PCH for decls that may modify it.Argyrios Kyrtzidis2010-07-052-6/+13
| | | | | | We can now use a PCH'ed <map>. llvm-svn: 107617
* Read/write some source location for PCH.Argyrios Kyrtzidis2010-07-052-1/+9
| | | | llvm-svn: 107616
* Fix a regression of a previous commit of mine (rdar://8158953).Argyrios Kyrtzidis2010-07-041-2/+2
| | | | | | | Some of the invariant checks for creating Record/Enum types don't hold true during PCH reading. Introduce more suitable ASTContext::getRecordType() and getEnumType(). llvm-svn: 107598
* Read/write more information of ASTContext for PCH. Overriden methods and ↵Argyrios Kyrtzidis2010-07-042-0/+28
| | | | | | instantiated-from information. llvm-svn: 107597
* Don't try to install the __[u]int128_t identifier if it is already installed ↵Argyrios Kyrtzidis2010-07-042-0/+4
| | | | | | | | | | by PCHReader. Currently, adding it to visible decls of a PCH'ed translation unit has no effect because adding visible decls before deserialization has no effect (the decls won't be visible). This will be fixed in a future commit; then it will force deserialization of visible decls, so avoid pointlessly installing it. llvm-svn: 107595
* Write/read ParmVarDecl's UninstantiatedDefaultArg for PCH.Argyrios Kyrtzidis2010-07-042-1/+8
| | | | llvm-svn: 107594
* Read/write specialization info of static data members for PCH.Argyrios Kyrtzidis2010-07-042-0/+20
| | | | 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-032-0/+2
| | | | | | | | | | | | | | | | | | 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-022-0/+2
| | | | llvm-svn: 107543
* Read/write CastExpr's CXXBaseSpecifierArray for PCH.Argyrios Kyrtzidis2010-07-026-25/+36
| | | | llvm-svn: 107542
* Fix broken PCH support for CXXDefaultArgExpr.Argyrios Kyrtzidis2010-07-022-12/+20
| | | | llvm-svn: 107541
* Lazily declare copy-assignment operators.Douglas Gregor2010-07-022-0/+2
| | | | llvm-svn: 107521
* Lazily declare the implicitly-declared destructor in a C++ class.Douglas Gregor2010-07-022-0/+2
| | | | llvm-svn: 107510
* Handle CXXConstructorDecl, CXXDestructorDecl, and CXXConversionDecl for PCH.Argyrios Kyrtzidis2010-07-022-17/+126
| | | | | | <vector> header can be used correctly through PCH now. llvm-svn: 107483
* Fix reading FunctionDecls from PCH.Argyrios Kyrtzidis2010-07-022-45/+47
| | | | llvm-svn: 107477
* Fix reading ClassTemplateDecl's ClassTemplateSpecializationDecls and ↵Argyrios Kyrtzidis2010-07-022-11/+23
| | | | | | | | 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-024-43/+109
| | | | llvm-svn: 107475
* Fix reading of DependentNameType.Argyrios Kyrtzidis2010-07-022-1/+5
| | | | llvm-svn: 107474
* Allow reading of InjectedClassNameType from PCH even when its decl is ↵Argyrios Kyrtzidis2010-07-021-1/+4
| | | | | | currently initializing. llvm-svn: 107473
* Fix broken reading of member pointer from PCH.Argyrios Kyrtzidis2010-07-021-1/+1
| | | | llvm-svn: 107472
* - Allow a typedef type to be read from PCH even if its decl is currently ↵Argyrios Kyrtzidis2010-07-022-7/+17
| | | | | | | | initializing. - Fix creation of TemplateSpecializationType. llvm-svn: 107471
* Fix broken reading of "#lines" from PCH.Argyrios Kyrtzidis2010-07-021-2/+3
| | | | llvm-svn: 107470
* Generally types expect an initialized TypeDecl; its safer and less ↵Argyrios Kyrtzidis2010-07-022-16/+16
| | | | | | 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
* Driver/IRgen: Add support for -momit-leaf-frame-pointer.Daniel Dunbar2010-07-011-0/+3
| | | | llvm-svn: 107367
* Fix PCH support for UnresolvedUsingTypenameDecl and UnresolvedUsingValueDecl.Argyrios Kyrtzidis2010-06-302-8/+8
| | | | llvm-svn: 107268
* Support DependentSizedArrayType for PCH.Argyrios Kyrtzidis2010-06-302-2/+21
| | | | llvm-svn: 107267
* Support ParenListExpr for PCH.Argyrios Kyrtzidis2010-06-302-2/+29
| | | | llvm-svn: 107266
* Headers: Define __INT64_TYPE__ in terms of getInt64Type(), which isn't alwaysDaniel Dunbar2010-06-301-0/+6
| | | | | | | | 'long'. The practical upshot is so that the uint64_t we define in our stdint.h ends up being compatible with that defined by gcc (at least on Darwin), which otherwise could lead to type incompatibilities with other system headers. llvm-svn: 107255
* Support C++ friend declarations for PCH.Argyrios Kyrtzidis2010-06-293-9/+40
| | | | | | | | | | | | 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
* When we know that we are at sub-statement reading (which is all of ↵Argyrios Kyrtzidis2010-06-291-87/+88
| | | | | | PCHStmtReader) use the "faster" ReadSubStmt. No functionality change. llvm-svn: 107218
* Modify the way sub-statements are stored and retrieved from PCH.Argyrios Kyrtzidis2010-06-285-682/+482
| | | | | | | | | | | | | | | 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
* Remove state assertion.Ted Kremenek2010-06-281-1/+0
| | | | llvm-svn: 107064
* Don't crash in InitializePreprocessor() when there is no valid PTHManager. ↵Ted Kremenek2010-06-281-1/+2
| | | | | | Fixes <rdar://problem/8098441>. llvm-svn: 107061
* Support CXXPseudoDestructorExpr for PCH.Argyrios Kyrtzidis2010-06-282-0/+49
| | | | llvm-svn: 106999
* Support DependentScopeDeclRefExpr for PCH.Argyrios Kyrtzidis2010-06-282-0/+50
| | | | llvm-svn: 106998
* Refactor PCH reading/writing of template arguments passed to expressions.Argyrios Kyrtzidis2010-06-282-87/+99
| | | | llvm-svn: 106997
* Fix PCH emitting/reading for template arguments that contain expressions.Argyrios Kyrtzidis2010-06-284-28/+142
| | | | llvm-svn: 106996
* Fix various bugs in recent commits for C++ PCH.Argyrios Kyrtzidis2010-06-283-2/+11
| | | | llvm-svn: 106995
* Implement support for -fwrapv, rdar://7221421Chris Lattner2010-06-263-17/+18
| | | | | | | | | | | | As part of this, pull together trapv handling into the same enum. This also add support for NSW multiplies. This also makes PCH disagreement on overflow behavior silent, since it really doesn't matter except for warnings and codegen (no macros get defined etc). llvm-svn: 106956
* Implement support for #pragma message, patch by Michael Spencer!Chris Lattner2010-06-261-1/+25
| | | | llvm-svn: 106950
* Support NonTypeTemplateParmDecl for PCH.Argyrios Kyrtzidis2010-06-252-3/+23
| | | | llvm-svn: 106860
* Make PCHWriter::FlushStmts() robust. If we added null Stmts, reading them ↵Argyrios Kyrtzidis2010-06-251-0/+1
| | | | | | back got messed up. llvm-svn: 106859
* Support DependentTemplateSpecializationType and ElaboratedType for PCH.Argyrios Kyrtzidis2010-06-252-14/+29
| | | | llvm-svn: 106858
OpenPOWER on IntegriCloud