--- /dev/null
+// Origin: Martin v. Löwis <loewis@informatik.hu-berlin.de>
+// 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
+};
--- /dev/null
+// Origin: Martin v. Löwis <loewis@informatik.hu-berlin.de>
+// 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();
+}