https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111094
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Also I read 2.2 differently (https://eel.is/c++draft/basic.indet) . Since the object which you are reading from is of type S and even though you are using an `unsigned char` to read the value here, it will not just be an Indeterminate but also will be undefined.