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__((__unused__)) 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