https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112493
--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- Of course the compiler should not ICE, but the code will not work as intended in any case, see the warning issued by the compiler about the unsupported type punning. If you want to byte-swap data, use the __builtin_bswapnn functions.