Skip to content

Commit e3326ab

Browse files
committed
[FOLD] fix dependent overloaded arrow
1 parent 51a3384 commit e3326ab

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

clang/lib/Sema/SemaExprCXX.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8039,7 +8039,7 @@ ExprResult Sema::ActOnStartCXXMemberReference(Scope *S, Expr *Base,
80398039
if (IsDependent) {
80408040
// BuildOverloadedArrowExpr sets IsDependent to indicate that we need
80418041
// to build a dependent overloaded arrow expression.
8042-
assert(BaseType->isDependentType());
8042+
assert(Base->isTypeDependent());
80438043
BaseType = Context.DependentTy;
80448044
break;
80458045
}

clang/lib/Sema/SemaExprMember.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,9 @@ Sema::ActOnDependentMemberExpr(Expr *BaseExpr, QualType BaseType,
581581
}
582582
}
583583

584-
assert(BaseType->isDependentType() || NameInfo.getName().isDependentName() ||
584+
assert(BaseType->isDependentType() ||
585+
(BaseExpr && BaseExpr->isTypeDependent()) ||
586+
NameInfo.getName().isDependentName() ||
585587
isDependentScopeSpecifier(SS) ||
586588
(TemplateArgs && llvm::any_of(TemplateArgs->arguments(),
587589
[](const TemplateArgumentLoc &Arg) {
@@ -1357,7 +1359,7 @@ static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
13571359
BaseType = Ptr->getPointeeType();
13581360
else if (BaseType->isFunctionType())
13591361
goto fail;
1360-
else if (BaseType->isDependentType())
1362+
else if (BaseExpr.get()->isTypeDependent())
13611363
BaseType = S.Context.DependentTy;
13621364
else if (BaseType->isRecordType()) {
13631365
// Recover from arrow accesses to records, e.g.:

0 commit comments

Comments
 (0)