summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-11-13 22:30:29 +0000
committerTed Kremenek <kremenek@apple.com>2007-11-13 22:30:29 +0000
commitda551c3b1e68d989ebd56068eba8c8e8e28d74e4 (patch)
tree13f916cf69a3083d63e4321192e4326abbba781d
parentb8f51d551204458cc980093c3bfcc985a72ad801 (diff)
downloadbcm5719-llvm-da551c3b1e68d989ebd56068eba8c8e8e28d74e4.tar.gz
bcm5719-llvm-da551c3b1e68d989ebd56068eba8c8e8e28d74e4.zip
Implemented serialization for SizeOfAlignOfTypeExpr.
llvm-svn: 44075
-rw-r--r--clang/AST/StmtSerialization.cpp21
-rw-r--r--clang/include/clang/AST/Expr.h3
2 files changed, 24 insertions, 0 deletions
diff --git a/clang/AST/StmtSerialization.cpp b/clang/AST/StmtSerialization.cpp
index 44796c8291a..10563bd0ca7 100644
--- a/clang/AST/StmtSerialization.cpp
+++ b/clang/AST/StmtSerialization.cpp
@@ -125,6 +125,9 @@ Stmt* Stmt::Create(Deserializer& D) {
case ReturnStmtClass:
return ReturnStmt::CreateImpl(D);
+ case SizeOfAlignOfTypeExprClass:
+ return SizeOfAlignOfTypeExpr::CreateImpl(D);
+
case StmtExprClass:
return StmtExpr::CreateImpl(D);
@@ -574,6 +577,24 @@ ReturnStmt* ReturnStmt::CreateImpl(Deserializer& D) {
return new ReturnStmt(RetLoc,RetExpr);
}
+void SizeOfAlignOfTypeExpr::EmitImpl(Serializer& S) const {
+ S.EmitBool(isSizeof);
+ S.Emit(Ty);
+ S.Emit(getType());
+ S.Emit(OpLoc);
+ S.Emit(RParenLoc);
+}
+
+SizeOfAlignOfTypeExpr* SizeOfAlignOfTypeExpr::CreateImpl(Deserializer& D) {
+ bool isSizeof = D.ReadBool();
+ QualType Ty = QualType::ReadVal(D);
+ QualType Res = QualType::ReadVal(D);
+ SourceLocation OpLoc = SourceLocation::ReadVal(D);
+ SourceLocation RParenLoc = SourceLocation::ReadVal(D);
+
+ return new SizeOfAlignOfTypeExpr(isSizeof,Ty,Res,OpLoc,RParenLoc);
+}
+
void StmtExpr::EmitImpl(Serializer& S) const {
S.Emit(getType());
S.Emit(LParenLoc);
diff --git a/clang/include/clang/AST/Expr.h b/clang/include/clang/AST/Expr.h
index 73aabd2af3e..254a497608f 100644
--- a/clang/include/clang/AST/Expr.h
+++ b/clang/include/clang/AST/Expr.h
@@ -466,6 +466,9 @@ public:
// Iterators
virtual child_iterator child_begin();
virtual child_iterator child_end();
+
+ virtual void EmitImpl(llvm::Serializer& S) const;
+ static SizeOfAlignOfTypeExpr* CreateImpl(llvm::Deserializer& D);
};
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud