summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclSerialization.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-01-05 19:45:36 +0000
committerDouglas Gregor <dgregor@apple.com>2009-01-05 19:45:36 +0000
commit07665a69e88334ced1648b5e4bcc2dbe2b90e366 (patch)
treeafcb47baaf692b09480bbe21c541f2c86df4cd98 /clang/lib/AST/DeclSerialization.cpp
parent07ebf302e5086323ddaf824427606d67ffe3b112 (diff)
downloadbcm5719-llvm-07665a69e88334ced1648b5e4bcc2dbe2b90e366.tar.gz
bcm5719-llvm-07665a69e88334ced1648b5e4bcc2dbe2b90e366.zip
Introduce support for "transparent" DeclContexts, which are
DeclContexts whose members are visible from enclosing DeclContexts up to (and including) the innermost enclosing non-transparent DeclContexts. Transparent DeclContexts unify the mechanism to be used for various language features, including C enumerations, anonymous unions, C++0x inline namespaces, and C++ linkage specifications. Please refer to the documentation in the Clang internals manual for more information. Only enumerations and linkage specifications currently use transparent DeclContexts. Still to do: use transparent DeclContexts to implement anonymous unions and GCC's anonymous structs extension, and, later, the C++0x features. We also need to tighten up the DeclContext/ScopedDecl link to ensure that every ScopedDecl is in a single DeclContext, which will ensure that we can then enforce ownership and reduce the memory footprint of DeclContext. llvm-svn: 61735
Diffstat (limited to 'clang/lib/AST/DeclSerialization.cpp')
-rw-r--r--clang/lib/AST/DeclSerialization.cpp17
1 files changed, 0 insertions, 17 deletions
diff --git a/clang/lib/AST/DeclSerialization.cpp b/clang/lib/AST/DeclSerialization.cpp
index 68412f968a5..0a298139bd9 100644
--- a/clang/lib/AST/DeclSerialization.cpp
+++ b/clang/lib/AST/DeclSerialization.cpp
@@ -686,29 +686,12 @@ void LinkageSpecDecl::EmitInRec(Serializer& S) const {
Decl::EmitInRec(S);
S.EmitInt(getLanguage());
S.EmitBool(HadBraces);
- if (HadBraces) {
- S.EmitInt(NumDecls);
- for (decl_const_iterator D = decls_begin(), DEnd = decls_end();
- D != DEnd; ++D)
- S.EmitPtr(*D);
- } else {
- S.EmitPtr((Decl*)Decls);
- }
}
void LinkageSpecDecl::ReadInRec(Deserializer& D, ASTContext& C) {
Decl::ReadInRec(D, C);
Language = static_cast<LanguageIDs>(D.ReadInt());
HadBraces = D.ReadBool();
- if (HadBraces) {
- NumDecls = D.ReadInt();
- Decl **NewDecls = new Decl*[NumDecls];
- Decls = NewDecls;
- for (unsigned I = 0; I < NumDecls; ++I)
- D.ReadPtr(NewDecls[I]);
- } else {
- D.ReadPtr(this->Decls);
- }
}
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud