summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/PCHReader.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Pass StringRefs by value.Benjamin Kramer2010-07-141-1/+1
| | | | llvm-svn: 108375
* Increase the max PCH level for declarations to 7. Add a FromPCH flag to types.Sebastian Redl2010-07-141-1/+3
| | | | llvm-svn: 108354
* Make PCHReader cope with PCH files containing more than one predefines buffer.Sebastian Redl2010-07-141-35/+116
| | | | llvm-svn: 108340
* Introduce -f{no-}spell-checking options to enable/disableDouglas Gregor2010-07-091-0/+1
| | | | | | | spell-checking. By default, spell-checking is enabled for Clang (obviously) but disabled in CIndex for performance reasons. llvm-svn: 107992
* Introduce PCHReader::GetTranslationUnitDecl() and use it instead of ↵Argyrios Kyrtzidis2010-07-081-1/+8
| | | | | | | | | ReadDeclRecord when initializing. ReadDeclRecord would hit assertion if the translation unit declaration was already loaded during IdentifierInfo initialization. llvm-svn: 107885
* For TagType and TemplateSpecializationType, isDependent calculation may be ↵Argyrios Kyrtzidis2010-07-081-10/+22
| | | | | | | | | invalid because some decls that the calculation is using may still be initializing. Thus, store the isDependent flag to PCH and restore directly to Type. llvm-svn: 107873
* Fix broken reading of NestedNameSpecifiers from PCH.Argyrios Kyrtzidis2010-07-071-1/+1
| | | | llvm-svn: 107784
* Delay passing InterestingDecls to the Consumer until when we know we are not ↵Argyrios Kyrtzidis2010-07-071-6/+17
| | | | | | | | in recursive loading and the declarations are fully initialized. llvm-svn: 107783
* Add to PCH missing Sema information about VTable uses and dynamic classes.Argyrios Kyrtzidis2010-07-061-0/+36
| | | | llvm-svn: 107664
* 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
* Don't try to install the __[u]int128_t identifier if it is already installed ↵Argyrios Kyrtzidis2010-07-041-0/+3
| | | | | | | | | | 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
* Read/write CastExpr's CXXBaseSpecifierArray for PCH.Argyrios Kyrtzidis2010-07-021-0/+10
| | | | llvm-svn: 107542
* Fully read/write CXXRecordDecl for PCH.Argyrios Kyrtzidis2010-07-021-0/+11
| | | | llvm-svn: 107475
* Fix reading of DependentNameType.Argyrios Kyrtzidis2010-07-021-1/+2
| | | | 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-021-5/+12
| | | | | | | | initializing. - Fix creation of TemplateSpecializationType. llvm-svn: 107471
* Fix broken reading of "#lines" from PCH.Argyrios Kyrtzidis2010-07-021-2/+3
| | | | llvm-svn: 107470
* Support DependentSizedArrayType for PCH.Argyrios Kyrtzidis2010-06-301-0/+17
| | | | llvm-svn: 107267
* Modify the way sub-statements are stored and retrieved from PCH.Argyrios Kyrtzidis2010-06-281-56/+15
| | | | | | | | | | | | | | | 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 PCH emitting/reading for template arguments that contain expressions.Argyrios Kyrtzidis2010-06-281-15/+52
| | | | llvm-svn: 106996
* Fix various bugs in recent commits for C++ PCH.Argyrios Kyrtzidis2010-06-281-2/+5
| | | | llvm-svn: 106995
* Implement support for -fwrapv, rdar://7221421Chris Lattner2010-06-261-8/+6
| | | | | | | | | | | | 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
* Support DependentTemplateSpecializationType and ElaboratedType for PCH.Argyrios Kyrtzidis2010-06-251-9/+19
| | | | llvm-svn: 106858
* Support a couple more C++ Exprs for PCH.Argyrios Kyrtzidis2010-06-241-0/+8
| | | | llvm-svn: 106727
* Support C++ class template specializations and partial specializations for PCH.Argyrios Kyrtzidis2010-06-231-5/+31
| | | | llvm-svn: 106625
* improve altivec vector bool/pixel support, patch by Anton YartsevChris Lattner2010-06-231-5/+5
| | | | | | with several tweaks by me. llvm-svn: 106619
* -Introduce PCHReader::ReadTemplateArgumentLoc()Argyrios Kyrtzidis2010-06-221-0/+7
| | | | | | | | -Introduce PCHWriter::AddTemplateArgumentLocInfo() -Modify PCHWriter::AddTemplateArgumentLoc() to also write TemplateArgumentLoc's TemplateArgument and move the existing calls of AddTemplateArgumentLoc() to AddTemplateArgumentLocInfo(). llvm-svn: 106533
* Initial support for reading templates from PCH.Argyrios Kyrtzidis2010-06-191-6/+87
| | | | llvm-svn: 106392
* Initial support for writing templates to PCH.Argyrios Kyrtzidis2010-06-191-0/+8
| | | | llvm-svn: 106391
* Split DependentNameType into two types. DependentNameType represents theJohn McCall2010-06-111-0/+12
| | | | | | | | | | | | | | case of an elaborated-type-specifier like 'typename A<T>::foo', and DependentTemplateSpecializationType represents the case of an elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc representation of a DependentTST conveniently exactly matches that of an ElaboratedType wrapping a TST. Kill off the explicit rebuild methods for RebuildInCurrentInstantiation; the standard implementations work fine because the nested name specifier is computable in the newly-entered context. llvm-svn: 105801
* Fix undefined behavior, noticed by GCC 4.5. Patch by Dimitry Andric!Daniel Dunbar2010-06-021-2/+3
| | | | llvm-svn: 105329
* Alter the ExternalASTSource interface to permit by-name lookups. PCH ↵John McCall2010-06-011-16/+27
| | | | | | | | | | | | | | continues to bring in the entire lookup table at once. Also, give ExternalSemaSource's vtable a home. This is important because otherwise any reference to it will cause RTTI to be emitted, and since clang is compiled with -fno-rtti, that RTTI will contain unresolved references (to ExternalASTSource's RTTI). So this change makes it possible to subclass ExternalSemaSource from projects compiled with RTTI, as long as the subclass's home is compiled with -fno-rtti. llvm-svn: 105268
* Added basic source locations to Elaborated and DependentName types.Abramo Bagnara2010-05-191-1/+4
| | | | llvm-svn: 104169
* Substantially alter the design of the Objective C type AST by introducingJohn McCall2010-05-151-14/+12
| | | | | | | | | | | | | | | | | | | | | ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. llvm-svn: 103870
* Revert r103770, "Added basic source locations to Elaborated and DependentNameDaniel Dunbar2010-05-141-2/+1
| | | | | | types.", it is breaking Clang bootstrap. llvm-svn: 103775
* Added basic source locations to Elaborated and DependentName types.Abramo Bagnara2010-05-141-1/+2
| | | | llvm-svn: 103770
* Merged Elaborated and QualifiedName types.Abramo Bagnara2010-05-111-6/+5
| | | | llvm-svn: 103517
* pchify CXXTemporary, CXXBindTemporaryExpr, and Chris Lattner2010-05-101-0/+6
| | | | | | CXXExprWithTemporaries. llvm-svn: 103387
* add PCH support for a bunch of C++ Decls, patch byChris Lattner2010-05-071-0/+45
| | | | | | Andrew Sutton! llvm-svn: 103301
* More work toward implementingFariborz Jahanian2010-04-231-6/+5
| | | | | | NeXt's -fno-constant-cfstrings - wip. llvm-svn: 102189
* Check for -fno-constant-cfstrings consistencyFariborz Jahanian2010-04-221-0/+3
| | | | | | in pch. llvm-svn: 102130
* Add support for '-fgnu-keywords' and '-fasm' to Clang's driver. They are notChandler Carruth2010-04-171-0/+2
| | | | | | | | implemented precisely the same as GCC, but the distinction GCC makes isn't useful to represent. This allows parsing code which uses GCC-specific keywords ('asm', etc.) without parsing in a fully GNU mode. llvm-svn: 101667
* On Windows, disable the modification-time check for files used inDouglas Gregor2010-04-091-2/+8
| | | | | | | | precompiled headers and/or when reading the contents of the file into memory. These checks seem to be causing spurious regression-test failures on Windows. llvm-svn: 100866
* Make code-completion for Objective-C message sends to "id" work in theDouglas Gregor2010-04-061-0/+8
| | | | | | | | presence of precompiled headers by forcibly loading all of the methods we know about from the PCH file before constructing our code-completion list. llvm-svn: 100535
* Match MemoryBuffer API changes.Chris Lattner2010-04-051-3/+2
| | | | llvm-svn: 100484
* Rename TypenameType to DependentNameType in anticipation of someDouglas Gregor2010-03-311-1/+1
| | | | | | refactoring work in this area. llvm-svn: 100019
* Remember the regparm attribute in FunctionType::ExtInfo.Rafael Espindola2010-03-301-5/+7
| | | | | | Fixes PR3782. llvm-svn: 99940
* the big refactoring bits of PR3782.Rafael Espindola2010-03-301-3/+4
| | | | | | | | This introduces FunctionType::ExtInfo to hold the calling convention and the noreturn attribute. The next patch will extend it to include the regparm attribute and fix the bug. llvm-svn: 99920
* Keep track of the size/modification time of each file source-locationDouglas Gregor2010-03-211-5/+12
| | | | | | | entry in a precompiled header, so that we can detect modified files even when we miss in the stat cache. llvm-svn: 99149
OpenPOWER on IntegriCloud