https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121938
--- Comment #6 from post+gcc at ralfj dot de --- > Let me take that back but this is all out of the scope of the c standard > since max enum is int. I think this changed in C23. There is now just says: "For an enumeration without a fixed underlying type, the expression that defines the value of an enumeration constant shall be an integer constant expression. For all the integer constant expressions which make up the values of the enumeration constants, there shall be a type capable of representing all the values that is a standard or extended signed or unsigned integer type, or char."