diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-06-30 08:49:18 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2010-06-30 08:49:18 +0000 |
commit | f9f47c8e54539f7b5c7108a5f25abcf8f2108deb (patch) | |
tree | 05d4b6ed9ff3938c27e025b74920b7ab28e783a1 /clang/lib/Frontend/PCHReaderStmt.cpp | |
parent | 2b3ac092001c7d95c07ef8506604812c611015c4 (diff) | |
download | bcm5719-llvm-f9f47c8e54539f7b5c7108a5f25abcf8f2108deb.tar.gz bcm5719-llvm-f9f47c8e54539f7b5c7108a5f25abcf8f2108deb.zip |
Support ParenListExpr for PCH.
llvm-svn: 107266
Diffstat (limited to 'clang/lib/Frontend/PCHReaderStmt.cpp')
-rw-r--r-- | clang/lib/Frontend/PCHReaderStmt.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/clang/lib/Frontend/PCHReaderStmt.cpp b/clang/lib/Frontend/PCHReaderStmt.cpp index 9a29234d5a8..b9751e84960 100644 --- a/clang/lib/Frontend/PCHReaderStmt.cpp +++ b/clang/lib/Frontend/PCHReaderStmt.cpp @@ -17,7 +17,7 @@ #include "clang/AST/StmtVisitor.h" using namespace clang; -namespace { +namespace clang { class PCHStmtReader : public StmtVisitor<PCHStmtReader> { PCHReader &Reader; @@ -69,6 +69,7 @@ namespace { void VisitStringLiteral(StringLiteral *E); void VisitCharacterLiteral(CharacterLiteral *E); void VisitParenExpr(ParenExpr *E); + void VisitParenListExpr(ParenListExpr *E); void VisitUnaryOperator(UnaryOperator *E); void VisitOffsetOfExpr(OffsetOfExpr *E); void VisitSizeOfAlignOfExpr(SizeOfAlignOfExpr *E); @@ -429,6 +430,17 @@ void PCHStmtReader::VisitParenExpr(ParenExpr *E) { E->setSubExpr(Reader.ReadSubExpr()); } +void PCHStmtReader::VisitParenListExpr(ParenListExpr *E) { + VisitExpr(E); + unsigned NumExprs = Record[Idx++]; + E->Exprs = new (*Reader.getContext()) Stmt*[NumExprs]; + for (unsigned i = 0; i != NumExprs; ++i) + E->Exprs[i] = Reader.ReadSubStmt(); + E->NumExprs = NumExprs; + E->LParenLoc = Reader.ReadSourceLocation(Record, Idx); + E->RParenLoc = Reader.ReadSourceLocation(Record, Idx); +} + void PCHStmtReader::VisitUnaryOperator(UnaryOperator *E) { VisitExpr(E); E->setSubExpr(Reader.ReadSubExpr()); @@ -1328,6 +1340,10 @@ Stmt *PCHReader::ReadStmtFromStream(llvm::BitstreamCursor &Cursor) { S = new (Context) ParenExpr(Empty); break; + case pch::EXPR_PAREN_LIST: + S = new (Context) ParenListExpr(Empty); + break; + case pch::EXPR_UNARY_OPERATOR: S = new (Context) UnaryOperator(Empty); break; |