case DoStmtClass:
return DoStmt::directMaterialize(D);
+
+ case FloatingLiteralClass:
+ return FloatingLiteral::directMaterialize(D);
case ForStmtClass:
return ForStmt::directMaterialize(D);
return new DoStmt(Body,Cond,DoLoc);
}
+void FloatingLiteral::directEmit(llvm::Serializer& S) const {
+ S.Emit(Loc);
+ S.Emit(getType());
+ S.Emit(Value);
+}
+
+FloatingLiteral* FloatingLiteral::directMaterialize(llvm::Deserializer& D) {
+ SourceLocation Loc = SourceLocation::ReadVal(D);
+ QualType t = QualType::ReadVal(D);
+ llvm::APFloat Val = llvm::APFloat::ReadVal(D);
+ FloatingLiteral* expr = new FloatingLiteral(Val,t,Loc);
+ return expr;
+}
+
void ForStmt::directEmit(llvm::Serializer& S) const {
S.Emit(ForLoc);
S.EmitOwnedPtr(getInit());
// Iterators
virtual child_iterator child_begin();
virtual child_iterator child_end();
+
+ virtual void directEmit(llvm::Serializer& S) const;
+ static FloatingLiteral* directMaterialize(llvm::Deserializer& D);
};
/// ImaginaryLiteral - We support imaginary integer and floating point literals,