| // PR c++/89511 |
| // { dg-do compile { target c++11 } } |
| |
| // [namespace.udecl] In a using-declaration used as a |
| // member-declaration, the nested-name-specifier shall name a base |
| // class of the class being defined |
| // (this changes in C++2a) |
| |
| void f () |
| { |
| enum e { a }; |
| using e::a; // { dg-error "redeclaration" } |
| // { dg-error "enum" "" { target { ! c++2a } } .-1 } |
| } |
| |
| enum E { A }; |
| |
| struct S { |
| enum E { A }; |
| using E::A; // { dg-error "not a base" "" { target { ! c++2a } } } |
| // { dg-error "conflicts" "" { target c++2a } .-1 } |
| }; |
| |
| namespace N { |
| enum E { B }; |
| } |
| |
| struct T { |
| using N::E::B; // { dg-error "enum" "" { target { ! c++2a } } } |
| }; |