https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116789
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Reduced testcase:
```
struct s3 {
template <typename T> constexpr s3(T x){}
};
template <typename T, s3 N> class s1;
template <typename T> class s2;
template <typename T, s3 sz>
using ali1 = s1<T, sz>;
template <typename T>
void h() {
s2<T> A;
ali1<T, A.func()> b;
}
```
The important part is the type alias ali1.
