c++: alias and non-type template parm [PR116223]

My r14-8291 for PR112632 introduced IMPLICIT_CONV_EXPR_FORCED to express
conversions to the type of an alias template parameter.  In this example,
that broke deduction of X in the call to foo, so let's teach deduction to
look through it.

	PR c++/116223
	PR c++/112632

gcc/cp/ChangeLog:

	* pt.cc (deducible_expression): Also look through
	IMPLICIT_CONV_EXPR_FORCED.
	(unify): Likewise.

gcc/testsuite/ChangeLog:

	* g++.dg/cpp1z/nontype-auto25.C: New test.

(cherry picked from commit 4add6cd341a779e980e41ed6fb49175fca37496e)
2 files changed