https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66444
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The 0xe000000000UL constant is probably not very good for ilp32 targets. Try some < 4GB one if it still reproduces without the patch, or conditionalize it on __SIZEOF_POINTER__.