Skip to content

Commit a206fc2

Browse files
Implement VisitPseudoObjectExpr
1 parent 45558df commit a206fc2

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
@@ -9291,6 +9292,21 @@ ExpectedStmt ASTNodeImporter::VisitSubstNonTypeTemplateParmPackExpr(
92919292
E->getIndex(), E->getFinal());
92929293
}
92939294

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

0 commit comments

Comments
 (0)