summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2014-05-06 06:35:27 +0000
committerNick Lewycky <nicholas@mxc.ca>2014-05-06 06:35:27 +0000
commitaa7168a21573b85067a0c99f014e7f537db38011 (patch)
tree5f5d5f8baffe6154cae320f2bb6b44ea1aeae21f /clang/lib
parentf9c3c9fe448892e49112ab2109c41912959a6fc6 (diff)
downloadbcm5719-llvm-aa7168a21573b85067a0c99f014e7f537db38011.tar.gz
bcm5719-llvm-aa7168a21573b85067a0c99f014e7f537db38011.zip
Fix crash when one overload candidate is a template instead of a function. Patch by Kaelyn Takata.
Testcase coming out of creduce will land in a separate commit shortly. Also, it appears that this callback is used even in a SFINAE context where the results are never displayed. llvm-svn: 208062
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index 70f5dba56d8..7f9e0ecd96f 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -9260,6 +9260,7 @@ struct CompareOverloadCandidatesForDisplay {
L->FailureKind == ovl_fail_too_few_arguments) {
if (R->FailureKind == ovl_fail_too_many_arguments ||
R->FailureKind == ovl_fail_too_few_arguments) {
+ if (!L->Function || !R->Function) return !R->Function;
int LDist = std::abs((int)L->Function->getNumParams() - (int)NumArgs);
int RDist = std::abs((int)R->Function->getNumParams() - (int)NumArgs);
if (LDist == RDist)
OpenPOWER on IntegriCloud