https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97798
--- Comment #11 from Jonathan Wakely <redi at gcc dot gnu.org> --- Fixed for gcc-11 but it should be backported too. Even if the compiler doesn't reject the overflow in the constant expressions, the values of the trait are still wrong for __int20.