From 5840d6e4f57a38f2c250927b4cd65c6e933f522c Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Sat, 24 Jun 2000 18:12:16 -0400 Subject: [PATCH] new From-SVN: r34685 --- .../g++.old-deja/g++.other/friend6.C | 19 +++++++++++++++++ .../g++.old-deja/g++.other/friend7.C | 21 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.other/friend6.C create mode 100644 gcc/testsuite/g++.old-deja/g++.other/friend7.C diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend6.C b/gcc/testsuite/g++.old-deja/g++.other/friend6.C new file mode 100644 index 00000000000..1bc6119da7c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/friend6.C @@ -0,0 +1,19 @@ +// Origin: Martin v. Löwis +// Test for resolution of core issue 125. +// Build don't link: + +struct A{ + struct B{}; +}; + +A::B C(); + +namespace B{ + A C(); +} + +class Test{ + friend A (::B::C)(); // Ok + friend A::B (::C)(); // Ok + friend A::B::C(); // ERROR - no A::B::C +}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend7.C b/gcc/testsuite/g++.old-deja/g++.other/friend7.C new file mode 100644 index 00000000000..02b67ccc1ed --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/friend7.C @@ -0,0 +1,21 @@ +// Origin: Martin v. Löwis +// Test that a friend declaration with an explicit :: finds the right fn. +// Build don't link: + +namespace M { +class S; +} +void foo(M::S *); + +namespace M { +class S { + friend void (::foo)(S *); + void Fn(); + static S s; +}; +} + +void (::foo)(M::S *ptr) { + M::S::s.Fn(); + ptr->Fn(); +}