diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2019-06-05 11:46:57 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2019-06-05 11:46:57 +0000 |
commit | d1015ecc8e5ecb9e68a4f8b151ba0daeacc1d31a (patch) | |
tree | 30b4d63f0d0e6fe704e82972ecc63039800a0cd3 /lib/Sema/SemaOverload.cpp | |
parent | b507aa0a9ea77db92b119043d04c957ac7c1184a (diff) | |
download | clang-d1015ecc8e5ecb9e68a4f8b151ba0daeacc1d31a.tar.gz |
Revert "Factor out duplicated code building a MemberExpr and marking it" and "Convert MemberExpr creation and serialization to work the same way as"
This reverts commits r362551 and r362563. Crashes during modules selfhost.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@362597 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaOverload.cpp')
-rw-r--r-- | lib/Sema/SemaOverload.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/Sema/SemaOverload.cpp b/lib/Sema/SemaOverload.cpp index 4bc725f4cf..30d809ac91 100644 --- a/lib/Sema/SemaOverload.cpp +++ b/lib/Sema/SemaOverload.cpp @@ -13912,11 +13912,14 @@ Expr *Sema::FixOverloadedFunctionReference(Expr *E, DeclAccessPair Found, type = Context.BoundMemberTy; } - return BuildMemberExpr( - Base, MemExpr->isArrow(), MemExpr->getOperatorLoc(), + MemberExpr *ME = MemberExpr::Create( + Context, Base, MemExpr->isArrow(), MemExpr->getOperatorLoc(), MemExpr->getQualifierLoc(), MemExpr->getTemplateKeywordLoc(), Fn, Found, - /*HadMultipleCandidates=*/true, MemExpr->getMemberNameInfo(), - type, valueKind, OK_Ordinary, TemplateArgs); + MemExpr->getMemberNameInfo(), TemplateArgs, type, valueKind, + OK_Ordinary); + ME->setHadMultipleCandidates(true); + MarkMemberReferenced(ME); + return ME; } llvm_unreachable("Invalid reference to overloaded function"); |