From 3d09131aeed691bbb88db76afd64028bb72588cc Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Thu, 16 May 2019 02:06:16 +0000 Subject: [PATCH] Fix regression in r360311 caused by reversed bool arguments. llvm-svn: 360837 --- clang/lib/Sema/SemaOverload.cpp | 3 ++- .../over.match.funcs/over.match.ref/p1.cpp | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 clang/test/CXX/over/over.match/over.match.funcs/over.match.ref/p1.cpp diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index 74283a0..256c2343 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -9003,8 +9003,9 @@ Sema::AddArgumentDependentLookupCandidates(DeclarationName Name, AddOverloadCandidate(FD, FoundDecl, Args, CandidateSet, /*SupressUserConversions=*/false, PartialOverloading, + /*AllowExplicit*/ true, /*AllowExplicitConversions*/ false, - /*AllowExplicit*/ true, ADLCallKind::UsesADL); + ADLCallKind::UsesADL); } else { AddTemplateOverloadCandidate( cast(*I), FoundDecl, ExplicitTemplateArgs, Args, diff --git a/clang/test/CXX/over/over.match/over.match.funcs/over.match.ref/p1.cpp b/clang/test/CXX/over/over.match/over.match.funcs/over.match.ref/p1.cpp new file mode 100644 index 0000000..e5b3607 --- /dev/null +++ b/clang/test/CXX/over/over.match/over.match.funcs/over.match.ref/p1.cpp @@ -0,0 +1,21 @@ +// RUN: %clang_cc1 %s -verify +// expected-no-diagnostics + +namespace r360311_regression { + struct string {}; + struct string_view { + explicit operator string() const; + }; + + namespace ns { + struct Base {}; + class Derived : public Base {}; + void f(string_view s, Base *c); + void f(const string &s, Derived *c); + } // namespace ns + + void g(string_view s) { + ns::Derived d; + f(s, &d); + } + } // namespace r360311_regression -- 2.7.4