Properly convert all declaration non-type template arguments when
authorRichard Smith <richard@metafoo.co.uk>
Thu, 5 Dec 2019 21:39:38 +0000 (13:39 -0800)
committerRichard Smith <richard@metafoo.co.uk>
Thu, 5 Dec 2019 22:32:36 +0000 (14:32 -0800)
commitb220662a45c8067a2ae485ae34c1138d93506df9
treebb42b104e871dd4150ac80bea911e20cc88b848f
parenteaf6c22bf411b07c17d204a7345fc62833120b0b
Properly convert all declaration non-type template arguments when
forming non-type template parameter values.

This reverts commit 93cc9dddd82f9e971f382ade6acf6634c5914966,
which reverted commit 11d10527852b4d3ed738aa90d8bec0f398160593.

We now always form `&x` when forming a pointer to a function rather than
trying to use function-to-pointer decay. This matches the behavior of
the old code in this case, but not the intent as described by the
comments.
clang/lib/Sema/SemaTemplate.cpp
clang/test/SemaCXX/exceptions-seh.cpp
clang/test/SemaCXX/warn-bool-conversion.cpp
clang/test/SemaTemplate/temp_arg_nontype_cxx1z.cpp