diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp | 16 | 
1 files changed, 13 insertions, 3 deletions
diff --git a/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp b/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp index c5f4495d2f01..3efb6482dd42 100644 --- a/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp +++ b/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp @@ -8,7 +8,7 @@  //===----------------------------------------------------------------------===//  ///  /// \file -/// \brief Implements serialization for Statements and Expressions. +/// Implements serialization for Statements and Expressions.  ///  //===----------------------------------------------------------------------===// @@ -444,6 +444,13 @@ void ASTStmtWriter::VisitIntegerLiteral(IntegerLiteral *E) {    Code = serialization::EXPR_INTEGER_LITERAL;  } +void ASTStmtWriter::VisitFixedPointLiteral(FixedPointLiteral *E) { +  VisitExpr(E); +  Record.AddSourceLocation(E->getLocation()); +  Record.AddAPInt(E->getValue()); +  Code = serialization::EXPR_INTEGER_LITERAL; +} +  void ASTStmtWriter::VisitFloatingLiteral(FloatingLiteral *E) {    VisitExpr(E);    Record.push_back(E->getRawSemantics()); @@ -509,6 +516,7 @@ void ASTStmtWriter::VisitUnaryOperator(UnaryOperator *E) {    Record.AddStmt(E->getSubExpr());    Record.push_back(E->getOpcode()); // FIXME: stable encoding    Record.AddSourceLocation(E->getOperatorLoc()); +  Record.push_back(E->canOverflow());    Code = serialization::EXPR_UNARY_OPERATOR;  } @@ -705,6 +713,7 @@ ASTStmtWriter::VisitBinaryConditionalOperator(BinaryConditionalOperator *E) {  void ASTStmtWriter::VisitImplicitCastExpr(ImplicitCastExpr *E) {    VisitCastExpr(E); +  Record.push_back(E->isPartOfExplicitCast());    if (E->path_size() == 0)      AbbrevToUse = Writer.getExprImplicitCastAbbrev(); @@ -1698,6 +1707,7 @@ void ASTStmtWriter::VisitOpaqueValueExpr(OpaqueValueExpr *E) {    VisitExpr(E);    Record.AddStmt(E->getSourceExpr());    Record.AddSourceLocation(E->getLocation()); +  Record.push_back(E->isUnique());    Code = serialization::EXPR_OPAQUE_VALUE;  } @@ -2675,7 +2685,7 @@ void ASTWriter::ClearSwitchCaseIDs() {    SwitchCaseIDs.clear();  } -/// \brief Write the given substatement or subexpression to the +/// Write the given substatement or subexpression to the  /// bitstream.  void ASTWriter::WriteSubStmt(Stmt *S) {    RecordData Record; @@ -2719,7 +2729,7 @@ void ASTWriter::WriteSubStmt(Stmt *S) {    SubStmtEntries[S] = Offset;  } -/// \brief Flush all of the statements that have been added to the +/// Flush all of the statements that have been added to the  /// queue via AddStmt().  void ASTRecordWriter::FlushStmts() {    // We expect to be the only consumer of the two temporary statement maps,  | 
