https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104113
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Auto has nothing to do with the problematic error message, take: template<typename T> struct A{}; A<tttt> x = A<short>(); GCC still produces: <source>:4:13: error: cannot convert 'A<short int>' to 'int' in initialization 4 | A<tttt> x = A<short>(); | ^~~~~~~~~~ | | | A<short int>