| Index: lib/AST/ItaniumMangle.cpp
|
| diff --git a/lib/AST/ItaniumMangle.cpp b/lib/AST/ItaniumMangle.cpp
|
| index 6e55655d85bba9678c445cb6b6446d5c1662fa49..0458cce64d86b3ac2c256e149e09512a082281fc 100644
|
| --- a/lib/AST/ItaniumMangle.cpp
|
| +++ b/lib/AST/ItaniumMangle.cpp
|
| @@ -2884,9 +2884,9 @@ recurse:
|
|
|
| case Expr::UnresolvedMemberExprClass: {
|
| const UnresolvedMemberExpr *ME = cast<UnresolvedMemberExpr>(E);
|
| - mangleMemberExpr(ME->getBase(), ME->isArrow(),
|
| - ME->getQualifier(), nullptr, ME->getMemberName(),
|
| - Arity);
|
| + mangleMemberExpr(ME->isImplicitAccess() ? nullptr : ME->getBase(),
|
| + ME->isArrow(), ME->getQualifier(), nullptr,
|
| + ME->getMemberName(), Arity);
|
| if (ME->hasExplicitTemplateArgs())
|
| mangleTemplateArgs(ME->getExplicitTemplateArgs());
|
| break;
|
| @@ -2895,8 +2895,9 @@ recurse:
|
| case Expr::CXXDependentScopeMemberExprClass: {
|
| const CXXDependentScopeMemberExpr *ME
|
| = cast<CXXDependentScopeMemberExpr>(E);
|
| - mangleMemberExpr(ME->getBase(), ME->isArrow(),
|
| - ME->getQualifier(), ME->getFirstQualifierFoundInScope(),
|
| + mangleMemberExpr(ME->isImplicitAccess() ? nullptr : ME->getBase(),
|
| + ME->isArrow(), ME->getQualifier(),
|
| + ME->getFirstQualifierFoundInScope(),
|
| ME->getMember(), Arity);
|
| if (ME->hasExplicitTemplateArgs())
|
| mangleTemplateArgs(ME->getExplicitTemplateArgs());
|
|
|