| // FIXME: Disabled, appears to have undefined behavior, and needs to be updated to match new warnings. | |
| // RUN: true | |
| // RUNX: clang-cc -fsyntax-only -verify %s | |
| namespace A { | |
| int VA; | |
| void FA() {} | |
| struct SA { int V; }; | |
| } | |
| using A::VA; | |
| using A::FA; | |
| using typename A::SA; | |
| void main() | |
| { | |
| VA = 1; | |
| FA(); | |
| SA x; //Still needs handling. | |
| } | |
| struct B { | |
| void f(char){}; | |
| void g(char){}; | |
| }; | |
| struct D : B { | |
| using B::f; | |
| void f(int); | |
| void g(int); | |
| }; | |
| void D::f(int) { f('c'); } // calls B::f(char) | |
| void D::g(int) { g('c'); } // recursively calls D::g(int) | |
| namespace E { | |
| template <typename TYPE> int funcE(TYPE arg) { return(arg); } | |
| } | |
| using E::funcE<int>; // expected-error{{use of template specialization in using directive not allowed}} | |
| namespace F { | |
| struct X; | |
| } | |
| using F::X; | |
| // Should have some errors here. Waiting for implementation. | |
| void X(int); | |
| struct X *x; |