https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92948
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Test I've been playing with:
struct A {
constexpr A(int) { }
};
template<A>
struct B {
using U = unsigned;
};
template<A a>
using U = B<a>;
//template<int X, typename Y = typename B<1>::U> // ok
template<int X, typename Y = typename U<X>::U> // ICE
//template<int X, typename Y = typename B<X>::U> // error
void foo()
{
}
void
g ()
{
foo<1>();
}
