@fay59 that is why underlying types were added ...
because this is an implementation defined behavior.
GCC documents it here:
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/Structures-unions-enumerations-and-bit-fields-implementation.html
I can't find where clang documents their implementation defined behaviors. (I didn't look for MSVC documentation).