https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99331
--- Comment #7 from Nikita Kniazev <nok.raven at gmail dot com> --- The fix silenced the true warning (though it was saying 'may') in these: template <char N> struct X {}; template <class T> X<sizeof(T)> foo(); int x = sizeof(foo<char[512]>()); template <char N> struct X {}; template <typename T> struct foo { using t = X<sizeof(T)>; }; foo<char[512]> x; Should I post this as a separate issue?