c++: fix injected friend of template class
authorNathan Sidwell <nathan@acm.org>
Tue, 22 Sep 2020 16:00:20 +0000 (09:00 -0700)
committerNathan Sidwell <nathan@acm.org>
Tue, 22 Sep 2020 16:05:20 +0000 (09:05 -0700)
commit7dfffe32419a963660f5c04b40b8f0becd509b69
treee5233181fc5ad8f5213a171fda2bae5be6dd459e
parent160061ac10f9143d9698daac5f7e46b5a615825c
c++: fix injected friend of template class

In working on fixing hiddenness, I discovered some suspicious code in
template instantiation.  I suspect it dates from when we didn't do the
hidden friend injection thing at all.  The xreftag finds the same
class, but makes it visible to name lookup.  Which is wrong.
hurrah, fixing a bug by deleting code!

gcc/cp/
* pt.c (instantiate_class_template_1): Do not repush and unhide
injected friend.
gcc/testsuite/
* g++.old-deja/g++.pt/friend34.C: Check injected friend is still
invisible.
gcc/cp/pt.c
gcc/testsuite/g++.old-deja/g++.pt/friend34.C