1 // { dg-do compile { target c++11 } } 2 3 inline namespace N __attribute__((__abi_tag__ ("foo"))) {} 4 template <typename> struct A {}; 5 namespace N { 6 template <typename> class B {}; 7 } 8 template <typename T> class __attribute__((__aligned__ (sizeof (T)))) C {}; 9 template <typename> struct D { 10 template <typename _Up> using G = C<_Up>; 11 }; 12 template <typename T> struct F { 13 template <typename U> struct H { 14 typedef typename D<T>::template G<U> I; 15 }; 16 }; 17 template <typename T, typename = C<T>> struct J { 18 C<A<const B<char>>> L; 19 typedef F<C<int>>::H<A<const B<char>>>::I M; 20 J<M> *a; 21 }; 22