diff options
| author | Abramo Bagnara <abramo.bagnara@bugseng.com> | 2012-11-08 18:41:43 +0000 |
|---|---|---|
| committer | Abramo Bagnara <abramo.bagnara@bugseng.com> | 2012-11-08 18:41:43 +0000 |
| commit | 8d16bd4d10abac4e9c9bde73ff4505a8fea5caad (patch) | |
| tree | 358570be86b9cebdc9e259565c2725d42270148a /clang/lib/Serialization | |
| parent | ad9f2e21cdb0160a298ed265b41912997ac2cc09 (diff) | |
| download | bcm5719-llvm-8d16bd4d10abac4e9c9bde73ff4505a8fea5caad.tar.gz bcm5719-llvm-8d16bd4d10abac4e9c9bde73ff4505a8fea5caad.zip | |
Allow to pass from syntactic form of InitListExpr to semantic form (just as viceversa). No functionality change.
llvm-svn: 167591
Diffstat (limited to 'clang/lib/Serialization')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 3 | ||||
| -rw-r--r-- | clang/lib/Serialization/ASTWriterStmt.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 4c3e31578ad..367f75f55eb 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -627,7 +627,8 @@ void ASTStmtReader::VisitExtVectorElementExpr(ExtVectorElementExpr *E) { void ASTStmtReader::VisitInitListExpr(InitListExpr *E) { VisitExpr(E); - E->setSyntacticForm(cast_or_null<InitListExpr>(Reader.ReadSubStmt())); + if (InitListExpr *SyntForm = cast_or_null<InitListExpr>(Reader.ReadSubStmt())) + E->setSyntacticForm(SyntForm); E->setLBraceLoc(ReadSourceLocation(Record, Idx)); E->setRBraceLoc(ReadSourceLocation(Record, Idx)); bool isArrayFiller = Record[Idx++]; diff --git a/clang/lib/Serialization/ASTWriterStmt.cpp b/clang/lib/Serialization/ASTWriterStmt.cpp index b1ee84b29eb..7e8ce42d7ca 100644 --- a/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/clang/lib/Serialization/ASTWriterStmt.cpp @@ -606,6 +606,8 @@ void ASTStmtWriter::VisitExtVectorElementExpr(ExtVectorElementExpr *E) { void ASTStmtWriter::VisitInitListExpr(InitListExpr *E) { VisitExpr(E); + // NOTE: only add the (possibly null) syntactic form. + // No need to serialize the isSemanticForm flag and the semantic form. Writer.AddStmt(E->getSyntacticForm()); Writer.AddSourceLocation(E->getLBraceLoc(), Record); Writer.AddSourceLocation(E->getRBraceLoc(), Record); |

