https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92413
--- Comment #3 from David Blaikie <dblaikie at gmail dot com> --- Ah, miswrote the example, here: template <class T> struct C {void foo();}; template struct C<int>; template <class T> void C<T>::foo() { static_assert(sizeof(T) == 1); } Here's a godbolt comparing Clang trunk and GCC trunk: https://godbolt.org/z/6jP_QM