From 470fa18b8d54594b339dafbd77ece4b05b4f00c3 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Mon, 11 Mar 2019 10:30:24 +0000 Subject: [PATCH] re PR c++/87571 (ICE in friend_accessible_p, accessing protected member of template friend inside template class) 2019-03-11 Paolo Carlini PR c++/87571 * g++.dg/template/memfriend18.C: New. From-SVN: r269575 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/template/memfriend18.C | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 gcc/testsuite/g++.dg/template/memfriend18.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fc117d8f5a36..ac02d28b8575 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2019-03-11 Paolo Carlini + + PR c++/87571 + * g++.dg/template/memfriend18.C: New. + 2019-03-10 Rainer Orth * gdc.dg/pr89041.d: Mark as compile test. diff --git a/gcc/testsuite/g++.dg/template/memfriend18.C b/gcc/testsuite/g++.dg/template/memfriend18.C new file mode 100644 index 000000000000..ac21896e0a2a --- /dev/null +++ b/gcc/testsuite/g++.dg/template/memfriend18.C @@ -0,0 +1,19 @@ +// PR c++/87571 + +template struct A { + template struct B { + template friend class B; + protected: + int protected_member_; + public: + template int method(const B& other) const { + return other.protected_member_; + } + }; +}; + +int main() { + A::B a; + A::B b; + a.method(b); +} -- 2.47.2