diff options
Diffstat (limited to 'clang/lib/Serialization/ASTReaderStmt.cpp')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 67ef17025191..e23ceffb10bf 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -1323,6 +1323,16 @@ void ASTStmtReader::VisitSourceLocExpr(SourceLocExpr *E) { E->SourceLocExprBits.Kind = Record.readInt(); } +void ASTStmtReader::VisitEmbedExpr(EmbedExpr *E) { + VisitExpr(E); + E->EmbedKeywordLoc = readSourceLocation(); + EmbedDataStorage *Data = new (Record.getContext()) EmbedDataStorage; + Data->BinaryData = cast<StringLiteral>(Record.readSubStmt()); + E->Data = Data; + E->Begin = Record.readInt(); + E->NumOfElements = Record.readInt(); +} + void ASTStmtReader::VisitAddrLabelExpr(AddrLabelExpr *E) { VisitExpr(E); E->setAmpAmpLoc(readSourceLocation()); @@ -3233,6 +3243,10 @@ Stmt *ASTReader::ReadStmtFromStream(ModuleFile &F) { S = new (Context) SourceLocExpr(Empty); break; + case EXPR_BUILTIN_PP_EMBED: + S = new (Context) EmbedExpr(Empty); + break; + case EXPR_ADDR_LABEL: S = new (Context) AddrLabelExpr(Empty); break; |
