https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109065
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- >* Don't use the second alias level for d, i.e. https://godbolt.org/z/KaWq9Pfq8 Using a typedef instead of alias still fails. That is: ``` template <class T> using DataAlias = int; template <class T> struct MyUniquePtr {}; template <class T> struct Test { typedef DataAlias<T> Data; MyUniquePtr<Data[1]> d; }; Test<int> test; ``` Still fails.