https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83399
Segher Boessenkool <segher at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-valid-code |ice-on-invalid-code --- Comment #11 from Segher Boessenkool <segher at gcc dot gnu.org> --- It is not valid: (void *)&a - 32 does not point inside a (or just behind it). Perhaps you can make it valid using uintptr_t. Either way: should not ICE ;-)