// { dg-do compile { target c++11 } }

inline namespace N __attribute__((__abi_tag__ ("foo"))) {}
template <typename> struct A {};
namespace N {
template <typename> class B {};
}
template <typename T> class __attribute__((__aligned__ (sizeof (T)))) C {};
template <typename> struct D {
  template <typename _Up> using G = C<_Up>;
};
template <typename T> struct F {
  template <typename U> struct H {
    typedef typename D<T>::template G<U> I;
  };
};
template <typename T, typename = C<T>> struct J {
  C<A<const B<char>>> L;
  typedef F<C<int>>::H<A<const B<char>>>::I M;
  J<M> *a;
};
