diff options
Diffstat (limited to 'lib/AST/StmtSerialization.cpp')
-rw-r--r-- | lib/AST/StmtSerialization.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/AST/StmtSerialization.cpp b/lib/AST/StmtSerialization.cpp index 41569df8f2..7058c0ce2f 100644 --- a/lib/AST/StmtSerialization.cpp +++ b/lib/AST/StmtSerialization.cpp @@ -13,6 +13,7 @@ //===----------------------------------------------------------------------===// #include "clang/AST/Expr.h" +#include "clang/AST/ExprCXX.h" #include "llvm/Bitcode/Serialize.h" #include "llvm/Bitcode/Deserialize.h" @@ -185,6 +186,13 @@ Stmt* Stmt::Create(Deserializer& D, ASTContext& C) { case ObjCStringLiteralClass: return ObjCStringLiteral::CreateImpl(D, C); + + //==--------------------------------------==// + // C++ + //==--------------------------------------==// + case CXXDefaultArgExprClass: + return CXXDefaultArgExpr::CreateImpl(D, C); + } } @@ -1002,3 +1010,16 @@ ObjCStringLiteral* ObjCStringLiteral::CreateImpl(Deserializer& D, ASTContext& C) StringLiteral* String = cast<StringLiteral>(D.ReadOwnedPtr<Stmt>(C)); return new ObjCStringLiteral(String,T,L); } + +//===----------------------------------------------------------------------===// +// C++ Serialization +//===----------------------------------------------------------------------===// +void CXXDefaultArgExpr::EmitImpl(Serializer& S) const { + S.EmitPtr(Param); +} + +CXXDefaultArgExpr *CXXDefaultArgExpr::CreateImpl(Deserializer& D, ASTContext& C) { + ParmVarDecl* Param = 0; + D.ReadPtr(Param, false); + return new CXXDefaultArgExpr(Param); +} |