blob: 7ccb4fc918123fa0a0a82939c95b3b273555435b [file] [log] [blame]
// Testcase from [namespace.udecl] updated by P1787
namespace A {
int x;
int f(int);
int g;
void h();
}
namespace B {
int i;
struct g { };
struct x { };
void f(int);
void f(double);
void g(char); // OK: hides struct g
}
void func() {
int i;
using B::i; // { dg-error "" } i conflicts
void f(char);
using B::f; // OK: each f is a function
using A::f; // OK, but interferes with B::f(int)
f(1); // { dg-error "" } ambiguous
static_cast<int(*)(int)>(f)(1); // OK: calls A::f
f(3.5); // calls B::f(double)
using B::g;
g('a'); // calls B::g(char)
struct g g1; // g1 has class type B::g
using A::g; // { dg-error "" } conflicts with B::g
void h();
using A::h; // { dg-error "" } conflicts
using B::x;
using A::x; // OK: hides struct B::x
x = 99; // assigns to A::x
struct x x1; // x1 has class type B::x
}