Skip to content

Commit 5158012

Browse files
Implement VisitPseudoObjectExpr
1 parent 3558472 commit 5158012

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

clang/lib/AST/ASTImporter.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -698,6 +698,7 @@ namespace clang {
698698
ExpectedStmt VisitConceptSpecializationExpr(ConceptSpecializationExpr* E);
699699
ExpectedStmt
700700
VisitSubstNonTypeTemplateParmPackExpr(SubstNonTypeTemplateParmPackExpr *E);
701+
ExpectedStmt VisitPseudoObjectExpr(PseudoObjectExpr *E);
701702

702703
// Helper for chaining together multiple imports. If an error is detected,
703704
// subsequent imports will return default constructed nodes, so that failure
@@ -9290,6 +9291,21 @@ ExpectedStmt ASTNodeImporter::VisitSubstNonTypeTemplateParmPackExpr(
92909291
E->getIndex(), E->getFinal());
92919292
}
92929293

9294+
ExpectedStmt ASTNodeImporter::VisitPseudoObjectExpr(PseudoObjectExpr *E) {
9295+
SmallVector<Expr *, 4> ToSemantics(E->getNumSemanticExprs());
9296+
if (Error Err = ImportContainerChecked(E->semantics(), ToSemantics))
9297+
return std::move(Err);
9298+
Expr *ToSynt = nullptr;
9299+
if (const Expr *FromSynt = E->getSyntacticForm()) {
9300+
if (auto ToSyntOrErr = import(FromSynt))
9301+
ToSynt = *ToSyntOrErr;
9302+
else
9303+
return ToSyntOrErr.takeError();
9304+
}
9305+
return PseudoObjectExpr::Create(Importer.getToContext(), ToSynt, ToSemantics,
9306+
E->getResultExprIndex());
9307+
}
9308+
92939309
Error ASTNodeImporter::ImportOverriddenMethods(CXXMethodDecl *ToMethod,
92949310
CXXMethodDecl *FromMethod) {
92959311
Error ImportErrors = Error::success();

0 commit comments

Comments
 (0)