// { dg-do compile }
// { dg-options "-g" }
template <typename _Tp> using decay_t = _Tp;
template <typename> struct A;
template <typename> struct B { B(A<int>); };
template <typename> struct C {
      template <typename U> using constructor = B<decay_t<U>>;
        typedef constructor<int> dummy;
};
template <typename> struct D {};
C<int> a;
D<B<int>> fn1() { fn1, a; return D<B<int>>(); }
