diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-04-17 01:52:14 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2014-04-17 01:52:14 +0000 |
commit | 100b24abc5a08552e0d94371561785d688249438 (patch) | |
tree | a3d04a8cae23d539a1e0601d6443b0d9e1332073 /clang/lib/Sema/SemaInit.cpp | |
parent | 688866ba3eb97738b5f7d5acedb73c06a285ea2f (diff) | |
download | bcm5719-llvm-100b24abc5a08552e0d94371561785d688249438.tar.gz bcm5719-llvm-100b24abc5a08552e0d94371561785d688249438.zip |
Implement [over.match.oper]p3 properly, by filtering the non-candidates out
when building the candidate set, rather than trying to contort name lookup into
handling this.
llvm-svn: 206436
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 382901667ed..9c90ac0d9af 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -4411,7 +4411,7 @@ InitializationSequence::InitializationSequence(Sema &S, const InitializationKind &Kind, MultiExprArg Args, bool TopLevelOfInitList) - : FailedCandidateSet(Kind.getLocation()) { + : FailedCandidateSet(Kind.getLocation(), OverloadCandidateSet::CSK_Normal) { InitializeFrom(S, Entity, Kind, Args, TopLevelOfInitList); } @@ -4945,7 +4945,7 @@ static ExprResult CopyObject(Sema &S, // Only consider constructors and constructor templates. Per // C++0x [dcl.init]p16, second bullet to class types, this initialization // is direct-initialization. - OverloadCandidateSet CandidateSet(Loc); + OverloadCandidateSet CandidateSet(Loc, OverloadCandidateSet::CSK_Normal); LookupCopyAndMoveConstructors(S, CandidateSet, Class, CurInitExpr); bool HadMultipleCandidates = (CandidateSet.size() > 1); @@ -5053,7 +5053,7 @@ static void CheckCXX98CompatAccessibleCopy(Sema &S, return; // Find constructors which would have been considered. - OverloadCandidateSet CandidateSet(Loc); + OverloadCandidateSet CandidateSet(Loc, OverloadCandidateSet::CSK_Normal); LookupCopyAndMoveConstructors( S, CandidateSet, cast<CXXRecordDecl>(Record->getDecl()), CurInitExpr); |