diff options
Diffstat (limited to 'clang/lib/Serialization/ASTReaderStmt.cpp')
| -rw-r--r-- | clang/lib/Serialization/ASTReaderStmt.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang/lib/Serialization/ASTReaderStmt.cpp b/clang/lib/Serialization/ASTReaderStmt.cpp index 8837396d03d..3fd9fff5add 100644 --- a/clang/lib/Serialization/ASTReaderStmt.cpp +++ b/clang/lib/Serialization/ASTReaderStmt.cpp @@ -1900,11 +1900,10 @@ void ASTStmtReader::VisitFunctionParmPackExpr(FunctionParmPackExpr *E) { void ASTStmtReader::VisitMaterializeTemporaryExpr(MaterializeTemporaryExpr *E) { VisitExpr(E); - bool HasMaterialzedDecl = Record.readInt(); - if (HasMaterialzedDecl) - E->State = cast<LifetimeExtendedTemporaryDecl>(Record.readDecl()); - else - E->State = Record.readSubExpr(); + E->State = Record.readSubExpr(); + auto *VD = ReadDeclAs<ValueDecl>(); + unsigned ManglingNumber = Record.readInt(); + E->setExtendingDecl(VD, ManglingNumber); } void ASTStmtReader::VisitCXXFoldExpr(CXXFoldExpr *E) { |

