https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94844
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #1) > This is intentional. You get a diagnostic with -pedantic or -pedantic-errors > > 94844.cc: In function ‘int main()’: > 94844.cc:9:8: warning: ‘long’ specified with ‘Foo’ {aka ‘long unsigned int’} > [-Wpedantic] > 9 | func<long Foo>(-1); > | ^~~~ > One which is even better than clang produces even.