]> granicus.if.org Git - clang/commitdiff
Implemented serialization of IfStmt.
authorTed Kremenek <kremenek@apple.com>
Wed, 7 Nov 2007 07:19:30 +0000 (07:19 +0000)
committerTed Kremenek <kremenek@apple.com>
Wed, 7 Nov 2007 07:19:30 +0000 (07:19 +0000)
Fixed declarations of several "directEmit" methods of classes that subclass
Stmt that were missing a "virtual" keyword.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43814 91177308-0d34-0410-b5e6-96231b3b80d8

AST/StmtSerialization.cpp
include/clang/AST/Expr.h
include/clang/AST/Stmt.h

index 7d82d0547e9e6406f0fa497470a1a85704a6886d..c6af9a50c7ae80d176b906d47c3da0177a3c1776 100644 (file)
@@ -52,6 +52,9 @@ Stmt* Stmt::Materialize(llvm::Deserializer& D) {
     case DefaultStmtClass:
       return DefaultStmt::directMaterialize(D);
       
+    case IfStmtClass:
+      return IfStmt::directMaterialize(D);
+      
     case IntegerLiteralClass:
       return IntegerLiteral::directMaterialize(D);
       
@@ -182,6 +185,21 @@ DefaultStmt* DefaultStmt::directMaterialize(llvm::Deserializer& D) {
   return stmt;
 }
 
+void IfStmt::directEmit(llvm::Serializer& S) const {
+  S.Emit(IfLoc);
+  S.EmitOwnedPtr(getCond());
+  S.EmitOwnedPtr(getThen());
+  S.EmitOwnedPtr(getElse());
+}
+
+IfStmt* IfStmt::directMaterialize(llvm::Deserializer& D) {
+  SourceLocation L = SourceLocation::ReadVal(D);
+  Expr* Cond = D.ReadOwnedPtr<Expr>();
+  Stmt* Then = D.ReadOwnedPtr<Stmt>();
+  Stmt* Else = D.ReadOwnedPtr<Stmt>();
+  return new IfStmt(L,Cond,Then,Else);
+}
+
 void IntegerLiteral::directEmit(llvm::Serializer& S) const {
   S.Emit(Loc);
   S.Emit(getType());
index 9b6a8e345b5b768d77c8b53d77f42b40c1f3b21f..6a06e5702ac7e1cf6df4657bb42d4f7bffec5016 100644 (file)
@@ -340,7 +340,7 @@ public:
   virtual child_iterator child_begin();
   virtual child_iterator child_end();
   
-  void directEmit(llvm::Serializer& S) const;
+  virtual void directEmit(llvm::Serializer& S) const;
   static ParenExpr* directMaterialize(llvm::Deserializer& D);
 };
 
index 46059c56bf01ebdc12e94037f56ac800306323c1..523eda69a05b825e82acf47e2c9507c3a3bcf158 100644 (file)
@@ -402,6 +402,9 @@ public:
   // Iterators
   virtual child_iterator child_begin();
   virtual child_iterator child_end();
+  
+  virtual void directEmit(llvm::Serializer& S) const;
+  static IfStmt* directMaterialize(llvm::Deserializer& D);
 };
 
 /// SwitchStmt - This represents a 'switch' stmt.
@@ -448,7 +451,7 @@ public:
   virtual child_iterator child_begin();
   virtual child_iterator child_end();
   
-  void directEmit(llvm::Serializer& S) const;
+  virtual void directEmit(llvm::Serializer& S) const;
   static SwitchStmt* directMaterialize(llvm::Deserializer& D);
 };
 
@@ -644,7 +647,7 @@ public:
   virtual child_iterator child_begin();
   virtual child_iterator child_end();
   
-  void directEmit(llvm::Serializer& S) const;
+  virtual void directEmit(llvm::Serializer& S) const;
   static BreakStmt* directMaterialize(llvm::Deserializer& D);
 };