diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-11 17:34:58 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-11 17:34:58 +0000 |
commit | b837ea4eeec55d2ac48116dd7d0caee1b8a6eed6 (patch) | |
tree | 0a1d404358431f0b9bd08c0e0c10837d967c767b /clang/lib/Sema/SemaOverload.cpp | |
parent | d30de95520dbefc1f7612b5c728dc90a3e791eb4 (diff) | |
download | bcm5719-llvm-b837ea4eeec55d2ac48116dd7d0caee1b8a6eed6.tar.gz bcm5719-llvm-b837ea4eeec55d2ac48116dd7d0caee1b8a6eed6.zip |
Implement C++ [temp.func.order]p5 more directly, by passing down the
number of explicit call arguments. This actually fixes an erroneous
test for [temp.deduct.partial]p11, where we were considering
parameters corresponding to arguments beyond those that were
explicitly provided.
llvm-svn: 123244
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
-rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index 62e60a14593..80ef65e4335 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -5897,7 +5897,8 @@ isBetterOverloadCandidate(Sema &S, Cand2.Function->getPrimaryTemplate(), Loc, isa<CXXConversionDecl>(Cand1.Function)? TPOC_Conversion - : TPOC_Call)) + : TPOC_Call, + NumArgs)) return BetterTemplate == Cand1.Function->getPrimaryTemplate(); // -- the context is an initialization by user-defined conversion @@ -6926,7 +6927,7 @@ Sema::ResolveAddressOfOverloadedFunction(Expr *From, QualType ToType, UnresolvedSetIterator Result = getMostSpecialized(MatchesCopy.begin(), MatchesCopy.end(), - TPOC_Other, From->getLocStart(), + TPOC_Other, 0, From->getLocStart(), PDiag(), PDiag(diag::err_addr_ovl_ambiguous) << Matches[0].second->getDeclName(), |