summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaOverload.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2011-01-11 17:34:58 +0000
committerDouglas Gregor <dgregor@apple.com>2011-01-11 17:34:58 +0000
commitb837ea4eeec55d2ac48116dd7d0caee1b8a6eed6 (patch)
tree0a1d404358431f0b9bd08c0e0c10837d967c767b /clang/lib/Sema/SemaOverload.cpp
parentd30de95520dbefc1f7612b5c728dc90a3e791eb4 (diff)
downloadbcm5719-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.cpp5
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(),
OpenPOWER on IntegriCloud