Perform type-checking for a converted constant expression in a template
authorRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 21 Dec 2016 21:42:57 +0000 (21:42 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Wed, 21 Dec 2016 21:42:57 +0000 (21:42 +0000)
commit52e624f3ecbe1e44d92e28b2b7506796974db697
tree5b94a5824912dce8c4b5ad2a877df027f34205f1
parent6bb0e39321329809c591bb433583f3969b2b08af
Perform type-checking for a converted constant expression in a template
argument even if the expression is value-dependent (we need to suppress the
final portion of the narrowing check, but the rest of the checking can still be
done eagerly).

This affects template template argument validity and partial ordering under
p0522r0.

llvm-svn: 290276
clang/include/clang/Sema/Overload.h
clang/lib/Sema/SemaInit.cpp
clang/lib/Sema/SemaOverload.cpp
clang/lib/Sema/SemaTemplate.cpp
clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp