https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118101
--- Comment #2 from Nathaniel Shead <nshead at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> Is valid? In that the specialization of A<T*> (imported via module B) after
> the use in B.
No, I've probably reduced it too far. But I can make it valid (I believe) by
replacing the static member with a function, like
template <typename T> struct B { A<T*> f(); };
since this way we haven't needed to instantiate the specialisation yet, and
this still reproduces the ICE. I might try to find a more obviously correct
reproduction at some point though.