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
case DefaultStmtClass:
return DefaultStmt::directMaterialize(D);
+ case IfStmtClass:
+ return IfStmt::directMaterialize(D);
+
case IntegerLiteralClass:
return IntegerLiteral::directMaterialize(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());
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);
};
// 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.
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);
};
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);
};