// PR c++/71662
// { dg-do compile { target c++11 } }
// { dg-additional-options "-Wno-return-type" }
template < typename T > struct A
{
  enum E : T;
  E h ();
};
A < int > a;
A < int >::E b = a.h ();
template < typename T > enum A < T >::E : T { e };  // { dg-message "enumeration" }
template < typename T > typename A < T >::E A < T >::h ()
{
  return e;  // { dg-error "declared" }
}