aboutsummaryrefslogtreecommitdiff
path: root/lib/AST/DeclSerialization.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/AST/DeclSerialization.cpp')
-rw-r--r--lib/AST/DeclSerialization.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/AST/DeclSerialization.cpp b/lib/AST/DeclSerialization.cpp
index 8a4612b674..29714c0125 100644
--- a/lib/AST/DeclSerialization.cpp
+++ b/lib/AST/DeclSerialization.cpp
@@ -88,6 +88,10 @@ Decl* Decl::Create(Deserializer& D, ASTContext& C) {
Dcl = TypedefDecl::CreateImpl(D, C);
break;
+ case TemplateTypeParm:
+ Dcl = TemplateTypeParmDecl::CreateImpl(D, C);
+ break;
+
case FileScopeAsm:
Dcl = FileScopeAsmDecl::CreateImpl(D, C);
break;
@@ -630,6 +634,27 @@ TypedefDecl* TypedefDecl::CreateImpl(Deserializer& D, ASTContext& C) {
}
//===----------------------------------------------------------------------===//
+// TemplateTypeParmDecl Serialization.
+//===----------------------------------------------------------------------===//
+
+void TemplateTypeParmDecl::EmitImpl(Serializer& S) const {
+ S.EmitBool(Typename);
+ ScopedDecl::EmitInRec(S);
+ ScopedDecl::EmitOutRec(S);
+}
+
+TemplateTypeParmDecl *
+TemplateTypeParmDecl::CreateImpl(Deserializer& D, ASTContext& C) {
+ bool Typename = D.ReadBool();
+ void *Mem = C.getAllocator().Allocate<TemplateTypeParmDecl>();
+ TemplateTypeParmDecl *decl
+ = new (Mem) TemplateTypeParmDecl(0, SourceLocation(), NULL, Typename);
+ decl->ScopedDecl::ReadInRec(D, C);
+ decl->ScopedDecl::ReadOutRec(D, C);
+ return decl;
+}
+
+//===----------------------------------------------------------------------===//
// LinkageSpec Serialization.
//===----------------------------------------------------------------------===//