https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84600
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- char** and char* are distant types and different with respect to aliasing. So storing as char* and then loading as char** is undefined behavior. void* is treated as being able to alias with any other pointer type (like accessing via the character types).