https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Most likely started with r192641, at least that version ICEs and r192632 does not. The problem is that as there is just a MEM_REF and the VAR_DECL is mentioned has XFmode (that has no corresponding MODE_INT mode with the same size), the var is not addressable, but the RTL expansion code isn't prepared to handle such cases. THat said, I'm really surprised by what already ccp1 makes out of this (the pass which does No longer having address taken: a ): MEM[(struct S * {ref-all})&a] = foo (); _4 = a_6(D); I've always thought that SSA_NAME_IS_DEFAULT_DEF for non-PARM_DECLs represent uninitialized value... Note that happens even say int low; int high; and double instead of long double, but in that case there is no ICE and it happens to work. I'm just surprised it does.