[PR c++/59930] template friend injection
commit90144cb9bd0750be68dd29e2438386c111a51bff
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Dec 2017 16:30:58 +0000 (18 16:30 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Dec 2017 16:30:58 +0000 (18 16:30 +0000)
tree1a40cb991e3f50f1695706c2af98c080c525658a
parent17e62d1b8b656512bdfb35a7c7f67560ca38c2b9
[PR c++/59930] template friend injection

https://gcc.gnu.org/ml/gcc-patches/2017-12/msg01168.html
PR c++/59930
* name-lookup.c (name_lookup::search_unqualified): Don't search
parent namespace when looking for hidden things.
* pt.c (tsubst_friend_class): Always push to friend scope, drop
unneeded self-friend check. Inject new hidden friend into correct
scope.

PR c++/59930
* g++.dg/parse/pr81247-c.C: Adjust.
* g++.dg/template/pr59930-[123].C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@255780 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/cp/ChangeLog
gcc/cp/name-lookup.c
gcc/cp/pt.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/pr81247-c.C
gcc/testsuite/g++.dg/template/pr59930-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/pr59930-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/pr59930-3.C [new file with mode: 0644]