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.

Reply via email to