https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95582
--- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- Well, the middle-end provides build_nonstandard_boolean_type to build boolean types with arbitrary precision so it cannot assume they have precision 1.