http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45791
--- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2010-09-25 22:10:15 UTC --- Hmm, normally we should see it from COMPONENT_REF: while (true) { if (TREE_CODE (ref) == COMPONENT_REF) { tree par_type; tree binfo, base_binfo; tree field = TREE_OPERAND (ref, 1); if (!DECL_ARTIFICIAL (field)) { tree type = TREE_TYPE (field); if (TREE_CODE (type) == RECORD_TYPE) return TYPE_BINFO (type); else return NULL_TREE; } but we don't since it has DECL_ARTIFICIAL set. What is the logic here? Also what about i.e. ARRAY_REF and arrays of objects and COMPONENT_REFs translated to MEM_REFs? Honza