Implemented serialization of FieldDecls.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@44126 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/DeclSerialization.cpp b/AST/DeclSerialization.cpp
index cfab8cc..3e2ce0f 100644
--- a/AST/DeclSerialization.cpp
+++ b/AST/DeclSerialization.cpp
@@ -43,6 +43,9 @@
     case BlockVar:
       return BlockVarDecl::CreateImpl(D);
       
+    case Field:
+      return FieldDecl::CreateImpl(D);
+      
     case FileVar:
       return FileVarDecl::CreateImpl(D);
       
@@ -217,6 +220,24 @@
 }
 
 //===----------------------------------------------------------------------===//
+//      FieldDecl Serialization.
+//===----------------------------------------------------------------------===//
+
+void FieldDecl::EmitImpl(Serializer& S) const {
+  S.Emit(getType());
+  NamedDecl::EmitInRec(S);
+  S.EmitOwnedPtr(BitWidth);  
+}
+
+FieldDecl* FieldDecl::CreateImpl(Deserializer& D) {
+  QualType DeclType = QualType::ReadVal(D);
+  FieldDecl* decl = new FieldDecl(SourceLocation(),NULL,DeclType);
+  decl->ReadInRec(D);
+  decl->BitWidth = D.ReadOwnedPtr<Expr>();
+  return decl;
+}
+
+//===----------------------------------------------------------------------===//
 //      FunctionDecl Serialization.
 //===----------------------------------------------------------------------===//