]> granicus.if.org Git - clang/commit
Implement C++ DR1391 (wg21.link/cwg1391)
authorRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 9 Jan 2017 00:43:47 +0000 (00:43 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Mon, 9 Jan 2017 00:43:47 +0000 (00:43 +0000)
commitf3bc0e63c5d35ea3872a8ad1589608c8ef635934
tree5c5658fcde878ef4de64b2eba22044d8aaee6590
parentc900a4b13d5e4746201cb3c8f6229e5cad3b35d9
Implement C++ DR1391 (wg21.link/cwg1391)

Check for implicit conversion sequences for non-dependent function
template parameters between deduction and substitution. The idea is to accept
as many cases as possible, on the basis that substitution failure outside the
immediate context is much more common during substitution than during implicit
conversion sequence formation.

This re-commits r290808, reverted in r290811, with a fix for handling of
explicitly-specified template argument packs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@291410 91177308-0d34-0410-b5e6-96231b3b80d8
12 files changed:
include/clang/Sema/Overload.h
include/clang/Sema/Sema.h
lib/Sema/SemaOverload.cpp
lib/Sema/SemaTemplateDeduction.cpp
test/CXX/drs/dr13xx.cpp
test/Misc/diag-template-diffing.cpp
test/SemaCXX/attr-mode-tmpl.cpp
test/SemaCXX/attr-noreturn.cpp
test/SemaCXX/overload-call.cpp
test/SemaCXX/overload-member-call.cpp
test/SemaTemplate/temp_arg_nontype.cpp
www/cxx_dr_status.html