2010-01-01 05:34:51 -05:00
|
|
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
2009-10-14 14:03:49 -04:00
|
|
|
|
|
|
|
|
namespace A {
|
|
|
|
|
class A {
|
|
|
|
|
friend void func(A);
|
|
|
|
|
friend A operator+(A,A);
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace B {
|
|
|
|
|
class B {
|
|
|
|
|
static void func(B);
|
|
|
|
|
};
|
|
|
|
|
B operator+(B,B);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace D {
|
|
|
|
|
class D {};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace C {
|
|
|
|
|
class C {};
|
|
|
|
|
void func(C);
|
|
|
|
|
C operator+(C,C);
|
|
|
|
|
D::D operator+(D::D,D::D);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace D {
|
|
|
|
|
using namespace C;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace Test {
|
|
|
|
|
void test() {
|
|
|
|
|
func(A::A());
|
2010-01-01 05:34:51 -05:00
|
|
|
func(B::B()); // expected-error {{use of undeclared identifier 'func'}}
|
2009-10-14 14:03:49 -04:00
|
|
|
func(C::C());
|
|
|
|
|
A::A() + A::A();
|
|
|
|
|
B::B() + B::B();
|
|
|
|
|
C::C() + C::C();
|
|
|
|
|
D::D() + D::D(); // expected-error {{ invalid operands to binary expression ('D::D' and 'D::D') }}
|
|
|
|
|
}
|
|
|
|
|
}
|