https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99331
--- Comment #3 from Nikita Kniazev <nok.raven at gmail dot com> --- This one most likely has the same root problem: template <int N> struct X {}; template <typename T> struct foo { using t = X<sizeof(T)>; }; <source>:3:26: error: conversion from 'long unsigned int' to 'int' may change value [-Werror=conversion] 3 | struct foo { using t = X<sizeof(T)>; }; | ^~~~~~~~~