[cfe-commits] r43800 - in /cfe/trunk: AST/StmtSerialization.cpp include/clang/AST/Stmt.h

Ted Kremenek kremenek at apple.com
Tue Nov 6 16:48:05 PST 2007


Author: kremenek
Date: Tue Nov  6 18:48:04 2007
New Revision: 43800

URL: http://llvm.org/viewvc/llvm-project?rev=43800&view=rev
Log:
Implemented serialization of LabelStmts.

Modified:
    cfe/trunk/AST/StmtSerialization.cpp
    cfe/trunk/include/clang/AST/Stmt.h

Modified: cfe/trunk/AST/StmtSerialization.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/AST/StmtSerialization.cpp?rev=43800&r1=43799&r2=43800&view=diff

==============================================================================
--- cfe/trunk/AST/StmtSerialization.cpp (original)
+++ cfe/trunk/AST/StmtSerialization.cpp Tue Nov  6 18:48:04 2007
@@ -46,6 +46,9 @@
     case IntegerLiteralClass:
       return IntegerLiteral::directMaterialize(D);
       
+    case LabelStmtClass:
+      return LabelStmt::directMaterialize(D);
+      
     case NullStmtClass:
       return NullStmt::directMaterialize(D);
       
@@ -140,6 +143,19 @@
   return expr;
 }
 
+void LabelStmt::directEmit(llvm::Serializer& S) const {
+  S.EmitPtr(Label);
+  S.Emit(IdentLoc);
+  S.EmitOwnedPtr(SubStmt);
+}
+
+LabelStmt* LabelStmt::directMaterialize(llvm::Deserializer& D) {
+  IdentifierInfo* Label = D.ReadPtr<IdentifierInfo>();
+  SourceLocation IdentLoc = SourceLocation::ReadVal(D);
+  Stmt* SubStmt = D.ReadOwnedPtr<Stmt>();
+  return new LabelStmt(IdentLoc,Label,SubStmt);
+}
+
 void NullStmt::directEmit(llvm::Serializer& S) const {
   S.Emit(SemiLoc);
 }

Modified: cfe/trunk/include/clang/AST/Stmt.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Stmt.h?rev=43800&r1=43799&r2=43800&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/Stmt.h (original)
+++ cfe/trunk/include/clang/AST/Stmt.h Tue Nov  6 18:48:04 2007
@@ -349,6 +349,9 @@
   // Iterators
   virtual child_iterator child_begin();
   virtual child_iterator child_end();
+  
+  virtual void directEmit(llvm::Serializer& S) const;
+  static LabelStmt* directMaterialize(llvm::Deserializer& D);
 };
 
 





More information about the cfe-commits mailing list