Fix serialization of DeclStmt.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54428 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/StmtSerialization.cpp b/lib/AST/StmtSerialization.cpp
index 845f902..03091fe 100644
--- a/lib/AST/StmtSerialization.cpp
+++ b/lib/AST/StmtSerialization.cpp
@@ -472,31 +472,15 @@
 void DeclStmt::EmitImpl(Serializer& S) const {
   S.Emit(StartLoc);
   S.Emit(EndLoc);
-
-  // FIXME: Clean up ownership of the Decl.
-  const ScopedDecl* d = getDecl();
-  
-  if (!S.isRegistered(d)) {
-    S.EmitBool(true);
-    S.EmitOwnedPtr(d);
-  }
-  else {
-    S.EmitBool(false);
-    S.EmitPtr(d);
-  }
+  S.EmitOwnedPtr(getDecl());
 }
     
 DeclStmt* DeclStmt::CreateImpl(Deserializer& D, ASTContext& C) {
   SourceLocation StartLoc = SourceLocation::ReadVal(D);
-  SourceLocation EndLoc = SourceLocation::ReadVal(D);
-  
-  bool OwnsDecl = D.ReadBool();  
-  ScopedDecl* decl = cast<ScopedDecl>(OwnsDecl ? D.ReadOwnedPtr<Decl>(C)
-                                               : D.ReadPtr<Decl>());
-  
+  SourceLocation EndLoc = SourceLocation::ReadVal(D);  
+  ScopedDecl* decl = cast<ScopedDecl>(D.ReadOwnedPtr<Decl>(C));  
   return new DeclStmt(decl, StartLoc, EndLoc);
 }
-    
 
 void DeclRefExpr::EmitImpl(Serializer& S) const {
   S.Emit(Loc);