b05d7b20171bbd2feb14b059f39332cbe1bf1014 |
|
17-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Keep track when a ObjC interface/protocol was initially created as a forward reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
72b2625aa67c8213acaf4bf6209b67859d60e2cf |
|
14-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Serialize info about redeclared objc methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
5e1cdac63c3d9c9b32fa41fa0b2d242a58a20d49 |
|
07-Oct-2011 |
John McCall <rjmccall@apple.com> |
Rename TagDecl::isDefinition -> isCompleteDefinition for better self-documenting code, since the semantics are subtly different from getDefinition(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
1711fc91efb36d131f7ba771f73f0154dc1abd1f |
|
04-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Improve location fidelity of objc decls. -Add the location of the class name to all objc container decls, not just ObjCInterfaceDecl. -Make objc decls consistent with the rest of the NamedDecls and have getLocation() point to the class name, not the location of '@'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
491306a83c4f0f49f95a3bcbca8580cb98a91c7a |
|
03-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow getting all source locations of selector identifiers in a ObjCMethodDecl. 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: -(id)first:(int)x second:(int)y; -With a space between the arguments: -(id)first: (int)x second: (int)y; -For nullary selectors, immediately before ';': -(void)release; In such cases we infer the locations instead of storing them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
11d77169555480ee0a04c6e5bc390d8fde41175d |
|
03-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Pass from the parser the locations of selector identifiers when creating objc method decls. They are not stored in the AST yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
da92a7f91cf88f49e02050919676f7fb8e3bdff8 |
|
03-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't keep NumSelectorArgs in the ObjCMethodDecl, the number can be derived from the selector. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
717a20b9cebb0d261b74995f8ebf3a1c814bbc08 |
|
01-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Mark a TagDecl when it is free standing (e.g. "struct foo;") git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Removing a bunch of dead returns/breaks after llvm_unreachables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 |
|
23-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Switch assert(0/false) llvm_unreachable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
71a7605977113c795edd44fcbd2302ad49506653 |
|
22-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't use TemplateArgumentListInfo inside AST nodes because it may leak. Use ASTTemplateArgumentListInfo instead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140331 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
4278c654b645402554eb52a48e9c7097c9f1233a |
|
21-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
ArrayRef-ifying Function/BlockDecl's setParams git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
144b38a7995cbe0928e34fbcc865bb2d2be4f7a3 |
|
13-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Fix a regression that r139441 introduced (decls were getting passed to the consumer without being fully deserialized). The regression was on compiling boost.python and it was too difficult to get a reduced test case unfortunately. Also modify the logic of how objc methods are getting passed to the consumer; codegen depended on receiving objc methods before the implementation decl. Since the interesting objc methods are ones with a body and such methods only exist inside an ObjCImplDecl, deserialize and pass to consumer all the methods of ObCImplDecl when we see one. Fixes http://llvm.org/PR10922 & rdar://10117105. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
768d6cae40ad4ff3aed5483269d068ff7a45e229 |
|
13-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Keep the source range of attributes. Depends on a llvm tablegen commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
94da1587f7d584fc61df793229d197969f204cd9 |
|
10-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Clean up our handling of Objective-C definitions in AST files. Rather than having CodeGen check whether a declaration comes from an AST file (which it shouldn't know or care about), make sure that the AST writer and reader pass along "interesting" declarations that CodeGen needs to know about. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
08e0bc16b3312c27e87d33be7dcf3d4fe5bdd2e2 |
|
10-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Kill of the Decl::PCHLevel field entirely. We now only need to know whether a Decl was deserialized from an AST file (any AST file). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
359427794704666ff7a5a933ace11c5256fa3af7 |
|
09-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
In ASTReader, replace the never-NULL ASTContext pointer with an ASTContext reference. Remove all of the extra checking and logic that was used to cope with a NULL ASTContext. No effective functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8d267c57afb3af418ed5281b7a9bb4555d701a82 |
|
09-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Modules: introduce the __module_private__ declaration specifier, which indicates that a declaration is only visible within the module it is declared in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
58e9797d001b34d03de6178eb91e9846fb90b79a |
|
06-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Finish implementing (de-)serialization of the CXXDefinitionData bits needed for implicit move constructors and move assignment operators. Fixes PR10847. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139144 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
fa77cbab63436aeb528099e0734599c117f7c80a |
|
01-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix "multi-line comment" compiler error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
e6b8d68a927368b06ac06cc9ac9e7f60aa966d5f |
|
01-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support importing of ObjC categories from modules. The initial incentive was to fix a crash when PCH chaining categories to an interface, but the fix was done in the "modules way" that I hear is popular with the kids these days. Each module stores the local chain of categories and we combine them when the interface is loaded. We also warn if non-dependent modules introduce duplicate named categories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
14c3633a0b6a06dd61c0cd239925174fc5728fff |
|
31-Aug-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Serialize the new bits in CXXRecordDecl::DefinitionData. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
955fadbdfecfa24a590febe66a86519096787f2d |
|
30-Aug-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove a few mutating ObjCCategoryDecl methods. Remove -setClassInterface -setNextClassCategory -insertNextClassCategory and combine them in the Create function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
95ed7784a335aca53b0c6e952cf31a4cfb633360 |
|
27-Aug-2011 |
Fariborz Jahanian <fjahanian@apple.com> |
objective-c: Treat top-level objective-c declarations , such as list of forward @class decls, in a DeclGroup node. Deal with its consequence throught clang. This is in preparation for more Sema work ahead. // rdar://8843851. Feel free to reverse if it breaks something important and I am unavailable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
1b59e9c3e1780567e30e5ead2b3512f0aa21fcb6 |
|
25-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove a bogus assertion from the AST reader, which assumed that redeclarations of a particular entity would occur in source order. Friend declarations that occur within class templates (or member classes thereof) do not follow this, nor would modules. Big thanks to Erik Verbruggen for reducing this problem from the Very Large Qt preamble testcase he found. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
0d95f77ba180aee35b74f3bf9f8543477f3af543 |
|
24-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST reader, switch name lookup within a DeclContect over to the module DAG-based lookup scheme. This required some reshuffling, so that each module stores its own mapping from DeclContexts to their lexical and visible sets for those DeclContexts (rather than one big "chain"). Overall, this allows simple qualified name lookup into the translation unit to gather results from multiple modules, with the lookup results in module B shadowing the lookup results in module A when B imports A. Walking all of the lexical declarations in a module DAG is still a mess; we'll end up walking the loaded module list backwards, which works fine for chained PCH but doesn't make sense in a DAG. I'll tackle this issue as a separate commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
bc84532e762a41141bd94037cd5d1133f234088e |
|
17-Aug-2011 |
Francois Pichet <pichet2000@gmail.com> |
Add serialization support for ClassScopeFunctionSpecializationDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
af1fc7af351758b0ea0d285bdfe5640128109a4e |
|
15-Aug-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Track in the AST whether a function is constexpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
af0f4d0b2e38c810effc8b024ad2fb6604eec5d3 |
|
14-Aug-2011 |
Francois Pichet <pichet2000@gmail.com> |
Implement function template specialization at class scope extension in Microsoft mode. A new AST node is introduced: ClassScopeFunctionSpecialization. This node holds a FunctionDecl that is not yet specialized; then during the class template instantiation the ClassScopeFunctionSpecialization will spawn the actual function specialization. Example: template <class T> class A { public: template <class U> void f(U p) { } template <> void f(int p) { } // <== class scope specialization }; This extension is necessary to parse MSVC standard C++ headers, MFC and ATL code. BTW, with this feature in, clang can parse (-fsyntax-only) all the MSVC 2010 standard header files without any error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6bf2b9fbd3e3adc38d4712de79aeaa81d651aa08 |
|
12-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the serialized AST format, make the translation unit a "predefined" declaration that never actually gets serialized. Instead, serialize the various kinds of update records (lexical decls, visible decls, the addition of an anonymous namespace) for the translation unit, even if we're not chaining. This way, we won't have to deal with multiple loaded translation unit declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6b8bc0707f26aa6acfdd80a59b9a3850cafbe387 |
|
10-Aug-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Renamings to consistently use 'Constexpr' not 'ConstExpr' when referring to the C++0x 'constexpr' keyword. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137230 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
e92b8a1dbba150e213c4980710fcb59ec5c5c570 |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't introduce a local -> global mapping for CXXBaseSpecifiers. The IDs will never cross module boundaries, since they're tied to the CXXDefinitionData, so just use a local mapping throughout. Eliminate the global -> local tables and supporting data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
b18b1fd33f958264630fbae2602c81275bae8c9a |
|
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce local -> global selector ID mapping into the AST reader. Tested with the usual "gaps" method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
496c709a6f08f5c502b6f592ddd9ed40f953a5e5 |
|
03-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the local -> global declaration ID mapping into the AST reader, to allow AST files to be loaded with their declarations remapped to different ID numbers. Fix a number of places where we were either failing to map local declaration IDs into global declaration IDs or where interpreting the local declaration IDs within the wrong module. I've tested this via the usual "random gaps" method. It works well except for the preamble tests, because our handling of the precompiled preamble requires declaration and preprocessed entity to be stable when parsing code and then loading that back into memory. This property will hold in general, but my randomized testing naturally breaks this property to get more coverage. In the future, I expect that the precompiled preamble logic won't need this property. I am very unhappy with the current handling of the translation unit, which is a rather egregious hack. We're going to have to do something very different here for loading multiple AST files, because we don't want to have to cope with merging two translation units. Likely, we'll just handle translation units entirely via "update" records, and predefine a single, fixed declaration ID for the translation unit. That will come later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
9827a8049a793f23c62ade8f24f0c66c2dbf6741 |
|
29-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the ASTReader, replace the continuous range maps whose value types were (Module*, Offset) with equivalent maps whose value type is just a Module*. The offsets have moved into corresponding "Base" fields within the Module itself, where they will also be helpful for local->global translation (eventually). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
95eab176f51beed44a9bc14c0dcdd37844b23740 |
|
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the ASTReader to perform local and global mapping of identifier IDs properly, although the mapping itself is still trivial. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
5f9e272e632e951b1efe824cd16acb4d96077930 |
|
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
72a9ae18553bf8b6bdad84d2c54f73741a47e275 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Rename ASTReader::PerFileData to serialization::Module, pulling it out of ASTReader so it can become its own full-fledged class (eventually). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8f1231b70c2b1f6fe0cee097b447487b26810301 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a global bit-offset continuous range map into the ASTReader, so that we have one, simple way to map from global bit offsets to local bit offsets. Eliminates a number of loops over the chain, and generalizes for more interesting bit remappings. Also, as an amusing oddity, we were computing global bit offsets *backwards* for preprocessed entities (e.g., the directly included PCH file in the chain would start at offset zero, rather than the original PCH that occurs first in translation unit). Even more amusingly, it made precompiled preambles work, because we were forgetting to adjust the local bit offset to a global bit offset when storing preprocessed entity offsets in the ASTUnit. Two wrongs made a right, and now they're both right. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
393f249399fe30e9580e1529a7479489e90f3a57 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST reader, factor out the mapping of local type IDs to global type IDs into a single place, and make sure that all of the callers use the appropriate functions to do the mapping. Since the mapping is still the identity function, this is essentially a no-op. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
f5bb9ae23d68ffb1e1c37b05fc8d943bc6bff12e |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Clean up the rest of the local -> global declaration ID mappings within the ASTReader (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
409448c832d27703146b70a1137d86b020f29863 |
|
22-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
In the ASTReader, factor out the loading of (local) declaration IDs, such that every declaration ID loaded from an AST file will go through a central local -> global mapping function. At present, this change does nothing, since the local -> global mapping function is the identity function. This is the mechanical part of the refactoring; a follow-up patch will address a few remaining areas where it's not obvious whether we're dealing with local or global IDs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
96e973f2be14c9b82136f74b4108465d24894fea |
|
20-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Use a ContinuousRangeMap to map from the global declaration ID in the AST reader down to the AST file + local ID within that file, rather than lamely walking the PCH chain. There's no actual functionality change now, but this is cleaner and more general. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7acddacc921cd0b3f813443a8641eeddb82dfbd4 |
|
17-Jun-2011 |
John McCall <rjmccall@apple.com> |
Objective-C fast enumeration loop variables are not retained in ARC, but they should still be officially __strong for the purposes of errors, block capture, etc. Make a new bit on variables, isARCPseudoStrong(), and set this for 'self' and these enumeration-loop variables. Change the code that was looking for the old patterns to look for this bit, and change IR generation to find this bit and treat the resulting variable as __unsafe_unretained for the purposes of init/destroy in the two places it can come up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7a614d8380297fcd2bc23986241905d97222948c |
|
11-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++11 in-class initialization of non-static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
926df6cfabf3eaa4afc990c097fa4619b76a9b57 |
|
11-Jun-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement Objective-C Related Result Type semantics. Related result types apply Cocoa conventions to the type of message sends and property accesses to Objective-C methods that are known to always return objects whose type is the same as the type of the receiving class (or a subclass thereof), such as +alloc and -init. This tightens up static type safety for Objective-C, so that we now diagnose mistakes like this: t.m:4:10: warning: incompatible pointer types initializing 'NSSet *' with an expression of type 'NSArray *' [-Wincompatible-pointer-types] NSSet *array = [[NSArray alloc] init]; ^ ~~~~~~~~~~~~~~~~~~~~~~ /System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:72:1: note: instance method 'init' is assumed to return an instance of its receiver type ('NSArray *') - (id)init; ^ It also means that we get decent type inference when writing code in Objective-C++0x: auto array = [[NSMutableArray alloc] initWithObjects:@"one", @"two",nil]; // ^ now infers NSMutableArray* rather than id git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
953c564288f2f376fed9c3540096bde3694bbb7a |
|
04-Jun-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Improvements to abbreviations for PCH which add support for EnumDecl, ObjCIvarDecl, TypedefDecl, VarDecl and FieldDecl and improve support for ParmVarDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
2bb110125e0e5adb7c1c65d12adfa34151ca1c47 |
|
13-May-2011 |
Douglas Gregor <dgregor@apple.com> |
When determining whether we can make a declaration into a global constant, also consider whether it's a class type that has any mutable fields. If so, it can't be a global constant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
2be7e90b81509204b99b7bbf9753ad17b894a12a |
|
13-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement defaulting of destructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
cdee3fee8ca4df7fb9179f29cc3ba96ac4fd0f95 |
|
12-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Implement implicit deletion of default constructors. Yes, I'm aware that the diagnostics are awful. Tests to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
37b8c9ee7cf2b4d5ce3ccd3be1fcadd18a783a57 |
|
09-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Clean up trivial default constructors now. hasTrivialDefaultConstructor() really really means it now. Also implement a fun standards bug regarding aggregates. Doug, if you'd like, I can un-implement that bug if you think it is truly a defect. The bug is that non-special-member constructors are never considered user-provided, so the following is an aggregate: struct foo { foo(int); }; It's kind of bad, but the solution isn't obvious - should struct foo { foo (int) = delete; }; be an aggregate or not? Lastly, add a missing initialization to FunctionDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
023df37c27ee8035664fb62f206ca58f4e2a169d |
|
09-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Rename "hasTrivialConstructor" to "hasTrivialDefaultConstructor" and modify the semantics slightly to accomodate default constructors (I hope). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
10620eb5164e31208fcbf0437cd79ae535ed0559 |
|
06-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Modify some deleted function methods to better reflect reality: - New isDefined() function checks for deletedness - isThisDeclarationADefinition checks for deletedness - New doesThisDeclarationHaveABody() does what isThisDeclarationADefinition() used to do - The IsDeleted bit is not propagated across redeclarations - isDeleted() now checks the canoncial declaration - New isDeletedAsWritten() does what it says on the tin. - isUserProvided() now correct (thanks Richard!) This fixes the bug that we weren't catching void foo() = delete; void foo() {} as being a redefinition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
3e4c6c4c79a03f5cb0c4671d7c282d623c6dc35e |
|
05-May-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++0x alias templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7079886ab5a9df450ed773419f0ae81f8404e2aa |
|
02-May-2011 |
John McCall <rjmccall@apple.com> |
Revise the representation of parameter scope data so that the scope depth overlaps with the ObjCDeclQualifier, dropping memory usage back to previous levels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
fb44de956f27875def889482b5393475060392af |
|
02-May-2011 |
John McCall <rjmccall@apple.com> |
Store a parameter index and function prototype depth in every parameter node and use this to correctly mangle parameter references in function template signatures. A follow-up patch will improve the storage usage of these fields; here I've just done the lazy thing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
f1e4fbf3112f33ec5b7bc5c57ec148445190d0a8 |
|
01-May-2011 |
John McCall <rjmccall@apple.com> |
Compress some bits. Only matters for MSVC, or if we ever devirtualize Decl (because bits can't get laid out in base classes if the base is POD). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
4fb86f8c4585e53c21c847ad3de9e3b2de123cd9 |
|
01-May-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Re-applies the patch first applied way back in r106099, with accompanying fixes to make it work today. The core of this patch is to provide a link from a TemplateTypeParmType back to the TemplateTypeParmDecl node which declared it. This in turn provides much more precise information about the type, where it came from, and how it functions for AST consumers. To make the patch work almost a year after its first attempt, it needed serialization support, and it now retains the old getName() interface. Finally, it requires us to not attempt to instantiate the type in an unsupported friend decl -- specifically those coming from template friend decls but which refer to a specific type through a dependent name. A cleaner representation of the last item would be to build FriendTemplateDecl nodes for these, storing their template parameters etc, and to perform proper instantation of them like any other template declaration. They can still be flagged as unsupported for the purpose of access checking, etc. This passed an asserts-enabled bootstrap for me, and the reduced test case mentioned in the original review thread no longer causes issues, likely fixed at somewhere amidst the 24k revisions that have elapsed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
ec997dc66627957bcdcd3db7906a68c1e14a279c |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rename the last '[hH]asStandardLayout' entites to '[iI]sStandardLayout' based on Doug's preferences when we discussed this in IRC. This brings the wording more in line with the standard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a8225449421e8c1e996a7c48300521028946482a |
|
30-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Completely re-implement the core logic behind the __is_standard_layout type trait. The previous implementation suffered from several problems: 1) It implemented all of the logic in RecordType by walking over every base and field in a CXXRecordDecl and validating the constraints of the standard. This made for very straightforward code, but is extremely inefficient. It also is conceptually wrong, the logic tied to the C++ definition of standard-layout classes should be in CXXRecordDecl, not RecordType. 2) To address the performance problems with #1, a cache bit was added to CXXRecordDecl, and at the completion of every C++ class, the RecordType was queried to determine if it was a standard layout class, and that state was cached. Two things went very very wrong with this. First, the caching version of the query *was never called*. Even within the recursive steps of the walk over all fields and bases the caching variant was not called, making each query a full *recursive* walk. Second, despite the cache not being used, it was computed for every class declared, even when the trait was never used in the program. This probably significantly regressed compile time performance for edge-case files. 3) An ASTContext was required merely to query the type trait because querying it performed the actual computations. 4) The caching bit wasn't managed correctly (uninitialized). The new implementation follows the system for all the other traits on C++ classes by encoding all the state needed in the definition data and building up the trait incrementally as each base and member are added to the definition of the class. The idiosyncracies of the specification of standard-layout classes requires more state than I would like; currently 5 bits. I could eliminate one of the bits easily at the expense of both clarity and resilience of the code. I might be able to eliminate one of the other bits by computing its state in terms of other state bits in the definition. I've already done that in one place where there was a fairly simple way to achieve it. It's possible some of the bits could be moved out of the definition data and into some other structure which isn't serialized if the serialized bloat is a problem. That would preclude serialization of a partial class declaration, but that's likely already precluded. Comments on any of these issues welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
ab9c0386ee71d4df79a13919e403c52f36df58ce |
|
29-Apr-2011 |
Anders Carlsson <andersca@mac.com> |
Serialize/deserialize the HasStandardLayout bit when writing/reading PCHs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130525 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
f79a71908d6f28cb2bc0c081d9a801ed14d61d82 |
|
29-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add a decl update when a static data member of a class template is instantiated in a different PCH than its containing class. Otherwise we get double definition errors. Fixes a Boost.MPL problem that affects Boost.Accumulators and probably a lot more of Boost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
74b485a2b36c0ba33a85ba9cb6e36e0e3a1fada1 |
|
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Set the correct anonymous namespace (must be last reopening), and behave correctly in the presence of the ever-annoying linkage specifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7c0837f29680f387fc4969b48a3643fe00b9b541 |
|
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix adding an anonymous namespace in a chained PCH to a namespace from a previous PCH. Fix anonymous namespaces in PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
024e1c400ec1d23dd76659395f87272da59a2cbd |
|
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
On reading DeclContexts from PCH, check for visible updates even if the context was empty in the original version. Also, if there are any, tell the context that it has external visible decls. This fixes the problem that a namespace that was empty in the initial PCH (could also happen if the initial PCH didn't include any std header but caused implicit creation of namespace std, e.g. due to implicit declaration of a virtual destructor) never found any declaration declared in *any* chained PCH. Very ugly when the chained PCH includes all that std stuff, as the errors were effectively the same as not including std headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
9b6347cd410be55425f7062d22fd6e4ecb4e1a58 |
|
24-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Implement most of the remaining logic in __is_literal type trait. This should now support all of the C++98 types, and all of the C++0x types Clang supports. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
4d6e5a22d9481bb83b82d911727540096d171c0b |
|
24-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Begin tracking trivialness of move constructors and move assignment operators in C++ record declarations. This patch starts off by updating a bunch of the standard citations to refer to the draft 0x standard so that the semantics intended for move varianst is clear. Where necessary these are duplicated so they'll be available in doxygen. It adds bit fields to keep track of the state for the move constructs, and updates all the code necessary to track this state (I think) as members are declared for a class. It also wires the state into the various trait-like accessors in the AST's API, and tests that the type trait expressions now behave correctly in the presence of move constructors and move assignment operators. This isn't complete yet due to these glaring FIXMEs: 1) No synthesis of implicit move constructors or assignment operators. 2) I don't think we correctly enforce the new logic for both copy and move trivial checks: that the *selected* copy/move constructor/operator is trivial. Currently this requires *all* of them to be trivial. 3) Some of the trait logic needs to be folded into the fine-grained trivial bits to more closely match the wording of the standard. For example, many of the places we currently set a bit to track POD-ness could be removed by querying other more fine grained traits on demand. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6b6b42aed07726178f61954ac6e51f47da00275c |
|
19-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
We regard a function as 'unused' from the codegen perspective, so our warnings diverge from gcc's unused warnings which don't get emitted if the function is referenced even in an unevaluated context (e.g. in templates, sizeof, etc.). Also, saying that a function is 'unused' because it won't get codegen'ed is somewhat misleading. - Don't emit 'unused' warnings for functions that are referenced in any part of the user's code. - A warning that an internal function/variable won't get emitted is useful though, so introduce -Wunneeded-internal-declaration which will warn if a function/variable with internal linkage is not "needed" ('used' from the codegen perspective), e.g: static void foo() { } template <int> void bar() { foo(); } test.cpp:1:13: warning: function 'foo' is not needed and will not be emitted static void foo() { } ^ Addresses rdar://8733476. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
162e1c1b487352434552147967c3dd296ebee2f7 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Support for C++11 (non-template) alias declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129567 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
ad762fcdc16b9e4705b12b09d92b8c026212b906 |
|
15-Apr-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add support for C++0x's range-based for loops, as specified by the C++11 draft standard (N3291). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129541 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
eecf5fa12d5426637c47d7072f0c193a8d7ff68b |
|
09-Mar-2011 |
John McCall <rjmccall@apple.com> |
Add a bit to ParmVarDecl indicating whether the parameter undergoes K&R-style default argument promotion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
f52516038ab5d0b1b90a6dd32f46b7d6dabd04c8 |
|
08-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach libclang's token-annotation logic about context-sensitive keywords for Objective-C+ and C++0x. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a2026c96d3935e7909e049ad9096762844544ed6 |
|
08-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed source range for StaticAssertDecl and LinkageSpecDecl. Fixed source range for declarations using postfix types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
acba90f30876b4140b738f0d3dd0e50724053a96 |
|
08-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed NamespaceDecl source range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
ff676cb48fe8bf7be2feaa251dc7c5fb15af4730 |
|
08-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed source range for all DeclaratorDecl's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a868c3799b739781db325c1bd2c6afd182bc9bd6 |
|
06-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Completed source ranges fixes for all classes inheriting from TypeDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
344577e6b58f42d18dc8118c8903b49a85dc005e |
|
06-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed TypedefDecl and TemplateTypeParameter source range. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6784304db526cde59046d613c4175ce2caf93e44 |
|
05-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed LabelDecl source range and cleaned creation code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
67da6f6f0c20dbfebb1c383a3efaf85d925ad33e |
|
05-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
When we're deserializing a template parameter declaration, temporarily use the translation unit as its declaration context, then deserialize the actual lexical and semantic DeclContexts after the template parameter is complete. This avoids problems when the DeclContext itself (e.g., a class template) is dependent on the template parameter (e.g., for the injected-class-name). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
9a299e0575ce235f491014627c7267e2d2cd73de |
|
04-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Make sure to put template parameters into their owning template's DeclContext once we've created it. This mirrors what we do for function parameters, where the parameters start out with translation-unit context and then are adopted by the appropriate DeclContext when it is created. Also give template parameters public access and make sure that they don't show up for the purposes of name lookup. Fixes PR9400, a regression introduced by r126920, which implemented substitution of default template arguments provided in template template parameters (C++ core issue 150). How on earth could the DeclContext of a template parameter affect the handling of default template arguments? I'm so glad you asked! The link is Sema::getTemplateInstantiationArgs(), which determines the outer template argument lists that correspond to a given declaration. When we're instantiating a default template argument for a template template parameter within the body of a template definition (not it's instantiation, per core issue 150), we weren't getting any outer template arguments because the context of the template template parameter was the translation unit. Now that the context of the template template parameter is its owning template, we get the template arguments from the injected-class-name of the owning template, so substitution works as it should. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
203548ba4b72e7e59320d352afc1eb0b5ab131de |
|
03-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed source range for LabelDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
55a9637969260ca7eb66011732094b33f049c52a |
|
03-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Removed left brace location from LinkageSpecDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
5f6bcbebedb85ee745cbd9a3ca51ca8c766a6117 |
|
03-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed end source location for LinkageSpecDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
21e006e51a7f9889f55f5bc7b3ca8b50d17571ec |
|
03-Mar-2011 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Fixed source range for FileScopeAsmDecl. Others source range fixes will follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
0cfaf6a270ecd0f5c7e541a8047c87948317548b |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Push nested-name-specifier source location information into namespace aliases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
db9924191092b4d426cc066637d81698211846aa |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Push nested-name-specifier source location information into using directives. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
dc355713be51fcb4ee52d9fd6b4548ceff47fadf |
|
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Update UsingDecl, UnresolvedUsingTypenameDecl, and UnresolvedUsingValueDecl to use NestedNameSpecifierLoc rather than the extremely-lossy NestedNameSpecifier/SourceRange pair it used to use, improving source-location information. Various infrastructure updates to support NestedNameSpecifierLoc: - AST/PCH (de-)serialization - Recursive AST visitor - libclang traversal (including the first tests of this functionality) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
57ad37823e198f977cac605dbfbaefb4daf325e9 |
|
17-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Step #2/N of __label__ support: keep pushing LabelDecl forward, making them be template instantiated in a more normal way and make them handle attributes like other decls. This fixes the used/unused label handling stuff, making it use the same infrastructure as other decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
ad8dcf4a9df0e24051dc31bf9e6f3cd138a34298 |
|
17-Feb-2011 |
Chris Lattner <sabre@nondot.org> |
Step #1/N of implementing support for __label__: split labels into LabelDecl and LabelStmt. There is a 1-1 correspondence between the two, but this simplifies a bunch of code by itself. This is because labels are the only place where we previously had references to random other statements, causing grief for AST serialization and other stuff. This does cause one regression (attr(unused) doesn't silence unused label warnings) which I'll address next. This does fix some minor bugs: 1. "The only valid attribute " diagnostic was capitalized. 2. Various diagnostics printed as ''labelname'' instead of 'labelname' 3. This reduces duplication of label checking between functions and blocks. Review appreciated, particularly for the cindex and template bits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
0895d1513772eca5a20c552976209fd7f58b993f |
|
12-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When reading the AST, delay loading of the redeclaration chain to avoid deeply nested calls. Temporarily set the first (canonical) declaration as the previous one, which is the one that matters, and mark the real previous DeclID to be loaded & attached later on. Fixes rdar://8956193. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
76a40219ee5624d78aba167dce02bdbaa930955f |
|
09-Feb-2011 |
John McCall <rjmccall@apple.com> |
NonTypeTemplateParmDecl is just a DeclaratorDecl, not a VarDecl. Also, reorganize and make very explicit the logic for determining the value kind and type of a referenced declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6b5a61b6dc400027fd793dcadceeb9da944a37ea |
|
07-Feb-2011 |
John McCall <rjmccall@apple.com> |
A few more tweaks to the blocks AST representation: - BlockDeclRefExprs always store VarDecls - BDREs no longer store copy expressions - BlockDecls now store a list of captured variables, information about how they're captured, and a copy expression if necessary With that in hand, change IR generation to use the captures data in blocks instead of walking the block independently. Additionally, optimize block layout by emitting fields in descending alignment order, with a heuristic for filling in words when alignment of the end of the block header is insufficient for the most aligned field. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
469a1eb996e1cb0be54f9b210f836afbddcbb2cc |
|
02-Feb-2011 |
John McCall <rjmccall@apple.com> |
An insomniac stab at making block declarations list the variables they close on, as well as more reliably limiting invalid references to locals from nested scopes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
cb88a1f968c3d4eb451dafb421a8d9578edcbf1a |
|
24-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Use attributes for all the override control specifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
faa6afd3e25688dc4e56c970ad57c0c31f2beeed |
|
22-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Serialize and deserialize IsMarkedFinal/IsMarkedExplicit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a97d70b7ea9633e8cbf976510d7a9ea66f4ac96c |
|
21-Jan-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Generalise support for non-inheritable attributes Inheritable attributes on declarations may be inherited by any later redeclaration at merge time. By contrast, a non-inheritable attribute will not be inherited by later redeclarations. Non-inheritable attributes may be semantically analysed early, allowing them to influence the redeclaration/overloading process. Before this change, the "overloadable" attribute received special handling to be treated as non-inheritable, while all other attributes were treated as inheritable. This patch generalises the concept, while removing a FIXME. Some CUDA location attributes are also marked as non-inheritable in order to support special overloading semantics (to be introduced in a later patch). The patch introduces a new Attr subclass, InheritableAttr, from which all inheritable attributes derive. Non-inheritable attributes simply derive from Attr. N.B. I did not review every attribute to determine whether it should be marked non-inheritable. This can be done later on an incremental basis, as this change does not affect default functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
c0534b6cdc414aa86ef7e9ab37f7a81a79140f02 |
|
20-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Add IsMarkedOverride and IsMarkedFinal flags to FunctionDecl (to be used by CXXRecordDecl). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6952f1e4256c5b43aee5e98cea4e9b663bd1d413 |
|
19-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for non-type template parameter packs whose type is a pack expansion, e.g., the parameter pack Values in: template<typename ...Types> struct Outer { template<Types ...Values> struct Inner; }; This new implementation approach introduces the notion of an "expanded" non-type template parameter pack, for which we have already expanded the types of the parameter pack (to, say, "int*, float*", for Outer<int*, float*>) but have not yet expanded the values. Aside from creating these expanded non-type template parameter packs, this patch updates template argument checking and non-type template parameter pack instantiation to make use of the appropriate types in the parameter pack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
cbb67480094b3bcb5b715acd827cbad55e2a204c |
|
08-Jan-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Renamed CXXBaseOrMemberInitializer to CXXCtorInitializer. This is both shorter, more accurate, and makes it make sense for it to hold a delegating constructor call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123084 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
61c4d28e36cd3f1be392cb77f07436d1fa6b0f9f |
|
05-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement support for template template parameter packs, e.g., template<template<class> class ...Metafunctions> struct apply_to_each; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
20df8e7bfeea219713ac4af85442d200b0d8a69c |
|
03-Jan-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
In the latest episode of "Deserializing bugs caused by accessors" the series reached a thrilling climax when FunctionDecl::setPure crashed a poor user's code. Remove the use of this accessor when deserializing, along with several other in the neighborhood. Fixes rdar://8759653. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
10738d36b150aa65206890c1c845cdba076e4200 |
|
24-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Add an AST representation for non-type template parameter packs, e.g., template<typename T, unsigned ...Dims> struct multi_array; along with semantic analysis support for finding unexpanded non-type template parameter packs in types, expressions, and so on. Template instantiation involving non-type template parameter packs probably doesn't work yet. That'll come soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
1ab55e9bb87d98bff1d42c7a0ee502c64755d9f5 |
|
10-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the branching in QualType::getTypePtr() by providing a 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121489 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8f1509446fc51db0473ea1241910c06353a153b8 |
|
09-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
When an "inline" declaration was followed by a definition not marked "inline", we weren't giving the definition weak linkage because the "inline" bit wasn't propagated. This was a longstanding FIXME that, somehow, hadn't triggered a bug in the wild. Fix this problem by tracking whether any declaration was marked "inline", and clean up the semantics of GNU's "extern inline" semantics calculation based on this change. Fixes <rdar://problem/8740363>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
381d34e0b205ca27bcc7e7c1652561941c437965 |
|
06-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Re-implement caching for the linkage calculation of declarations. My previous attempt at solving the compile-time problem with many redeclarations of the same entity cached both linkage and visibility, while this patch only tackles linkage. There are several reasons for this difference: - Linkage is a language concept, and is evaluated many times during semantic analysis and codegen, while visibility is only a code-generation concept that is evaluated only once per (unique) declaration. Hence, we *must* optimize linkage calculations but don't need to optimize visibility computation. - Once we know the linkage of a declaration, subsequent redeclarations can't change that linkage. Hence, cache invalidation is far simpler than for visibility, where a later redeclaration can completely change the visibility. - We have 3 spare bits in Decl to store the linkage cache, so the cache doesn't increase the size of declarations. With the visibility+linkage cache, NamedDecl got larger. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
b5f35bae05f1ce3ae62ca52b266a086fd019e89b |
|
06-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r120808, my previous implementation of caching for the linkage and visibility of declarations, because it was extremely messy and it increased the size of NamedDecl. An improved implementation is forthcoming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a88cefd266c428be33cc06f7e8b00ff8fc97c1ff |
|
03-Dec-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added struct/class syntactic info for c++0x scoped enum. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
2357207a5753547740c70a12c3b37f71afa93f8a |
|
03-Dec-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement caching for the linkage and visibility calculations of declarations. The motivation for this patch is that linkage/visibility computations are linear in the number of redeclarations of an entity, and we've run into a case where a single translation unit has > 6500 redeclarations of the same (unused!) external variable. Since each redeclaration involves a linkage check, the resulting quadratic behavior makes Clang slow to a crawl. With this change, a simple test with 512 redeclarations of a variable syntax-checks ~20x faster than before. That said, I hate this change, and will probably end up reverting it in a few hours. Reasons to hate it: - It makes NamedDecl larger, since we don't have enough free bits in Decl to squeeze in the extra information about caching. - There are way too many places where we need to invalidate this cache, because the visibility of a declaration can change due to redeclarations (!). Despite self-hosting and passing the testsuite, I have no confidence that I've found all of places where this cache needs to be invalidated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
87c2e121cf0522fc266efe2922b58091cd2e0182 |
|
21-Nov-2010 |
Francois Pichet <pichet2000@gmail.com> |
Major anonymous union/struct redesign. A new AST node is introduced: def IndirectField : DDecl<Value>; IndirectFields are injected into the anonymous's parent scope and chain back to the original field. Name lookup for anonymous entities now result in an IndirectFieldDecl instead of a FieldDecl. There is no functionality change, the code generated should be the same. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119919 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a4ffd85a6684e42f900aad5459e58ad91bb88755 |
|
17-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
For an Objective-C @synthesize statement, e.g., @synthesize foo = _foo; keep track of the location of the ivar ("_foo"). Teach libclang to visit the ivar as a member reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
826faa22bae112e01293a58534a40711043cce65 |
|
10-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Replace UsingDecl's SmallPtrSet of UsingShadowDecls with a linked list to avoid leaking memory. Fixes rdar://8649963. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
910f8008fea79120489a53593fe971b0b8a4a740 |
|
08-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
Remove broken support for variadic templates, along with the various abstractions (e.g., TemplateArgumentListBuilder) that were designed to support variadic templates. Only a few remnants of variadic templates remain, in the parser (parsing template type parameter packs), AST (template type parameter pack bits and TemplateArgument::Pack), and Sema; these are expected to be used in a future implementation of variadic templates. But don't get too excited about that happening now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7c789c1a3f77f24032aa0bed2afacdb9e094e952 |
|
30-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the deserialization of C++ base class specifiers lazy, improving the performance of C++ PCH and reducing stack depth in the reader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
3c7d7afd2530610e3d5678c4369731471d1bfb59 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove an assertion that hit on legitimate cases. A redeclaration may have location before the first one if the redeclaration comes from a friend decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
bef1a7b9c175d37e4a727e6ce68bd05232fa6970 |
|
28-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use the ASTMutationListener to track added template specializations in a chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
c8e5cf8f725e111965debb7130ef7466c0c73884 |
|
28-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Make AST deserialization for class template specializations lazier, by not loading the specializations of a class template until some AST consumer needs them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
69aecc6252bf4a5ee59f9b51c3728ea07b6342bf |
|
27-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Lazily load the next friend in the chain of FriendDecls, to eliminate some excessive recursion and deserialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
06c919300ce39e50ed7f6dff5025c8ed96dcf221 |
|
27-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Lazily load the "next" namespace in the chain of NamespaceDecls, to eliminate some excessive recursion and deserialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117476 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
b6cc0e1a789c3f33e3f4b1ee768e679a9beab941 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Keep track in chained PCH of implicit members that were added after the definition was completed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
565bf30bf5607b9740d288d8d9c45cf38ea75298 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Start fleshing out ASTMutationListener; notify when a tag definition is completed. In that case a chained PCH will record the updates to the DefinitionData pointer of forward references. If a forward reference mutated into a definition re-write it into the chained PCH, this is too big of a change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
89eaf3af92c72c0c1aae807644e39cabc461d685 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactoring. - Pass around RecordDataImpl instead of the concrete RecordData so that any SmallVector can be used. - Move ASTDeclWriter::WriteCXXDefinitionData to ASTWriter::AddCXXDefinitionData. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7b90340c9c7d07aef4e301e72b5e8a30d5f4f0c8 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Put the mechanism in place to track modifications in an AST entity that were committed after its initial creation/deserialization and store the changes in a chained PCH. The idea is that the AST entities call methods on the ASTMutationListener to give notifications of changes; the PCHWriter implements the ASTMutationListener interface and stores the incremental changes of the updated entity. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117235 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
134db1fff5653c164ef41c898943521c49f6ebab |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Simplify and "robust-ify" the way that CXXRecord references point to the definition data when loaded from PCH. Temporary disable 'test/PCH/chain-cxx.cpp' until a better way to fix it is in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117234 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
c01dc6fb5bae1ac60910e8fbf1d22a8fa1e691f7 |
|
24-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Minor refactoring; Pull reading/writing DefinitionData out into a function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
441fff128f833c46172300e3fa815920b80420f7 |
|
21-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Modify the assumptions of an assert; the updated latest redeclaration can have the same location if it's a template specialization pointing at the template. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116974 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
3e8a614b15b74f7126c3d82b399efd95be06f014 |
|
20-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Minor optimization; Try to iterator over redeclarations only when necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
9703b0dd353b928b2312076f13e30950e05d5fa1 |
|
20-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix issue with chained PCH where forward references did not pick up later definition in the chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
4eb9fc0449ddbd5239ddc3ae6b6e52880f47dcf7 |
|
18-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write declaration attributes from/to PCH properly. Embed them in the declaration block instead of trying to create another block. The new block was messing with the assumption that after decls block comes the stmts block. Fixes http://llvm.org/PR8406 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6102ca1d490836096678d7d934f0b2b78f9293ec |
|
16-Oct-2010 |
John McCall <rjmccall@apple.com> |
White-listing templated-scope friend decls is a good idea, but doing it by marking the decl invalid isn't. Make some steps towards supporting these and then hastily shut them down at the last second by marking them as unsupported. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
4045107b7384fd68eed5e3e2f06fc2a47e7be0a6 |
|
15-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write to/from PCH DeclarationNameLocs, DeclarationNameInfos and QualifierInfos (rdar://8513756). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
36d2fd44bfeec417bbd7465218353abb8bf7e95d |
|
14-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Store in PCH the key function of C++ class to avoid deserializing the complete declaration context in order to compute it. Progress for rdar://7260160. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
1274ccd90aec0b205fc838c3d504821ccfb55482 |
|
09-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement C++0x scoped enumerations, from Daniel Wallin! (and tweaked a bit by me). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
0a0c3e72ce42f84f361c285e6963d44213ab6bea |
|
05-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Serialize the "inline" bit for namespaces. Fixes <rdar://problem/8515069>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
1d9f1fe7173e3084325f43c78af812a36d8a2a7c |
|
05-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Give every file that ASTReader loads a type: module, PCH, precompiled preamble or main file. Base Decls' PCHLevel on this to make it more sane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
c3632730cc83ed7b51f0ab5c38997ae5a9439b0c |
|
05-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Thread PerFileData through the ASTReader again, this time with the LLVM changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
b1a7d9a21bcfc295d1d899a42c0d14d617058c29 |
|
01-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r115336 ("Thread PerFileData through everything."), because we're missing the corresponding changes in the LLVM repository. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115340 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
dc928191a33be17f3b921c0616e6463312f439db |
|
01-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Thread PerFileData through everything. This allows us to remap stuff later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
3e9438b5251a547253d64169863c2909b9b2772a |
|
28-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Kill FunctionDecl's IsCopyAssignment bit; it duplicated what could already be determined by isCopyAssignmentOperator(), and was set too late in the process for all clients to see the appropriate value. Cleanup only; no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
99a8ca0bdbf97f7b05f3f8aed05ff495caea5b84 |
|
13-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix C++ PCH issue. The canonical FunctionTemplateDecl contains the specializations but we cannot use getCanonicalDecl on Template because it may still be initializing. Write and read it from PCH. Fixes http://llvm.org/PR8134 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8fed4b4bc93cce4d15bdb79f9e30cc25a93c8143 |
|
13-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Avoid setters in ASTDeclReader::VisitClassTemplatePartialSpecializationDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
586c7156d51039290f100c80d2d8bd263c99addc |
|
13-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Avoid setters in ASTDeclReader::VisitClassTemplateSpecializationDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113742 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8b996b8cb4b4711b260b0cf21ba388d3909af10d |
|
13-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Avoid setters in ASTDeclReader::VisitCXXRecordDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
a626a3d0fb74455651f742c0938902a42e6e71c8 |
|
09-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix C++ PCH issue. Another beating by boost in this test case: http://llvm.org/PR8117 A function specialization wasn't properly initialized if it wasn't canonical. I wish there was a nice little test case but this was boost. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
65b63ec1410f09e1f3cdb847018d678b8f8fc3f7 |
|
08-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Re-enable CheckAccessDeclContext and make sure it doesn't trigger assertions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113413 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6b5415196327fa8ef00f028ba175fafef1738ae1 |
|
08-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix C++ PCH issues. PCH got a severe beating by the boost-using test case reported here: http://llvm.org/PR8099 Fix issues like: -When PCH reading, make sure Decl's getASTContext() doesn't get called since a Decl in the parent hierarchy may be initializing. -In ASTDeclReader::VisitFunctionDecl VisitRedeclarable should be called before using FunctionDecl's isCanonicalDecl() -In ASTDeclReader::VisitRedeclarableTemplateDecl CommonOrPrev must be initialized before anything else. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
7e24256c95afb64b4d5abf201a0f9f0527cb4cf3 |
|
01-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement libclang support for using declarations. Clang actually uses three different kinds of AST nodes to represent using declarations: UsingDecl, UnresolvedUsingValueDecl, and UnresolvedUsingTypenameDecl. These three are collapsed into a single cursor kind for using declarations, since libclang clients don't need the distinction. Several related changes here: - Cursor visitation of the three AST nodes for using declarations - Proper source-range computation for these AST nodes - Using declarations have no USRs, since they don't actually declare any entities. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
0a35bceb7768fc0be62cb644a4e31d8bfd9fb44a |
|
01-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement libclang support for using directives (cursor + visitation + suppressing USRs). Also, fix up the source location information for using directives so that the declaration location refers to the namespace name. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112693 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
53b9441b5a81a24fa1f66f3f6416f1e36baa9c2f |
|
01-Sep-2010 |
Ted Kremenek <kremenek@apple.com> |
Split ObjCInterfaceDecl::ReferencedProtocols into two lists: ReferencedProtocols and AllReferencedProtocols. ReferencedProtocols (and thus protocol_begin(), protocol_end()) now only contains the list of protocols that were directly referenced in an @interface declaration. 'all_referenced_protocol_[begin,end]()' now returns the set of protocols that were referenced in both the @interface and class extensions. The latter is needed for semantic analysis/codegen, while the former is needed to maintain the lexical information of the original source. Fixes <rdar://problem/8380046>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8ea5b9d832455247a15925398fb663d299d33238 |
|
01-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve location information in the representation of namespace aliases. Previously, the location of the alias was at the "namespace" keyword. Now, it's on the identifier being declared (as is the custom for Clang), and we keep a separate source location for the "namespace" keyword. Also, added a getSourceRange() member function to NamespaceAliasDecl to correctly compute the source range. Finally, removed a bunch of setters from NamespaceAliasDecl and gave ASTReaderDecl friendship so that it could set the corresponding fields directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
d931b086984257de68868a64a235c2b4b34003fb |
|
26-Aug-2010 |
John McCall <rjmccall@apple.com> |
De-memberify the VarDecl and FunctionDecl StorageClass enums. This lets us remove Sema.h's dependency on Expr.h and Decl.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6e50e00c2fe6a04b2c35592588a4b10a2c269416 |
|
25-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
AST reader support for having specializations of templates from earlier in the chain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
e1dde811b38e779894150cb1093d57f8411a84f7 |
|
24-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Read the UPDATE_VISIBLE record, and add its visible decls to the lookup tables. Also, free the lookup tables when destructing the ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111880 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
000835d0b04345c0014c603fe6339b3bc154050e |
|
23-Aug-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Support for IRGen of synthesize bitfield ivars in objc-nonfragile-abi2 (radar 7824380). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
2c18bb7c9fca66c30b6eabbdcbc6399d24a54fa9 |
|
20-Aug-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
objective-c ivar refactoring patch. Iterations over ivars for a varienty of puposes is now consolidated into two small routines; DeepCollectObjCIvars and ShallowCollectObjCIvars. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
074dcc8ef8c5df7a155c85648e8eae786bee6cab |
|
20-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use the AST on-disk hash table for name lookup inside a DeclContext. *Huge* improvement over the amount of deserializing that we do for C++ lookup. e.g, if he have the Carbon header precompiled and include it on a file containing this: int x; these are the before/after stats: BEFORE: *** AST File Statistics: 578 stat cache hits 4 stat cache misses 548/30654 source location entries read (1.787695%) 15907/16501 types read (96.400223%) 53525/59955 declarations read (89.275291%) 33993/43525 identifiers read (78.099945%) 41516/51891 statements read (80.006165%) 77/5317 macros read (1.448185%) 0/6335 lexical declcontexts read (0.000000%) 1/5424 visible declcontexts read (0.018437%) AFTER using the on-disk table: *** AST File Statistics: 578 stat cache hits 4 stat cache misses 548/30654 source location entries read (1.787695%) 10/16501 types read (0.060602%) 9/59955 declarations read (0.015011%) 161/43525 identifiers read (0.369902%) 20/51891 statements read (0.038542%) 6/5317 macros read (0.112846%) 0/6335 lexical declcontexts read (0.000000%) 2/5424 visible declcontexts read (0.036873%) There's only one issue affecting mostly the precompiled preambles which I will address soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
8538e8d43a3a9bd439c987c0de37bcbf035dd391 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename pch namespace to serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
6ab7cd853e9c15cf986a8a7c3db1f8d20e275409 |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename the ASTReader header files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|
904c9c8389b65ee93a706ede911accd11e0b9d8e |
|
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename the ASTReader implementation files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Serialization/ASTReaderDecl.cpp
|