https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92821
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Note that for most types one ends up with zero or sign extension already due to C/C++ promotion rules, though in the ABI still can't use that as guarantee, but C++ typed enums aren't promoted.