Resolve a defect in C++17 copy omission.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 26 Sep 2017 18:37:55 +0000 (18:37 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 26 Sep 2017 18:37:55 +0000 (18:37 +0000)
commit67ef14fe486e169f937737672d687032122d4637
tree2c137a7dcade43e44be85dcd5773d9b755fb05be
parentafd34c6df76a68b581205a21733ceedf8676932d
Resolve a defect in C++17 copy omission.

When selecting constructors for initializing an object of type T from a single
expression of class type U, also consider conversion functions of U that
convert to T (rather than modeling such conversions as calling a conversion
function and then calling a constructor).

This approach is proposed as the resolution for the defect, and is also already
implemented by GCC.

llvm-svn: 314231
clang/include/clang/Sema/Overload.h
clang/include/clang/Sema/Sema.h
clang/lib/Sema/SemaCodeComplete.cpp
clang/lib/Sema/SemaInit.cpp
clang/lib/Sema/SemaOverload.cpp
clang/test/SemaCXX/cxx1z-copy-omission.cpp