http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52329
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-21 18:41:01 UTC --- Richard, so what exactly is not kosher? We have: # DEBUG D#7 => &s.c.D.2422 ... MEM[(struct J *)&s].D.2422._vptr.G = &MEM[(void *)&_ZTV1JI1BIwES0_IS1_E1AIS1_EE + 16B]; in the optimized dump, &s.c.D.2422 is ADDR_EXPR of COMPONENT_REF of MEM_REF, the first operand in the real stmt is COMPONENT_REF of COMPONENT_REF of MEM_REF.