// 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 } } }
};
