Skip to content
Snippets Groups Projects
Commit d1fc9816 authored by Patrick Palka's avatar Patrick Palka
Browse files

c++: erroneous partial spec vs primary tmpl [PR116064]


When a partial specialization is deemed erroneous at parse time, we
currently flag the primary template as erroneous instead.  Later
at instantiation time we check if the primary template is erroneous
rather than the selected partial specialization, so at least we're
consistent.

But it's better not to conflate a partial specialization with the
primary template since they're instantiated independenty.  This avoids
rejecting the instantiation of A<int> in the below testcase.

	PR c++/116064

gcc/cp/ChangeLog:

	* error.cc (get_current_template): If the current scope is
	a partial specialization, return it instead of the primary
	template.
	* pt.cc (instantiate_class_template): Pass the partial
	specialization if any to maybe_diagnose_erroneous_template
	instead of the primary template.

gcc/testsuite/ChangeLog:

	* g++.dg/template/permissive-error2.C: New test.

Reviewed-by: default avatarJason Merrill <jason@redhat.com>
parent 38900247
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment