https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89690
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- The error you get just complains that you are assinging an int (the zero) to a void *. A fix is to write __MEM <void *>((char*) &a + 16) = _Literal (void *) 0; to get a NULL pointer constant of void * type.