http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45586
Mikael Morin <mikael at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |janus at gcc dot gnu.org --- Comment #42 from Mikael Morin <mikael at gcc dot gnu.org> 2011-01-25 21:41:00 UTC --- (In reply to comment #40) There is indeed something fishy here. Your change does the right thing in the non-class case I think ; can't tell about the class case. Janus ? The code tries to match a reference to an inherited component but misses references to the base types themselves. In extends_1.f03, for: new_person%service%education%person%ss = ss the dump shows: new_person->service.education.person.service.education.person.education.person.person.ss = *ss; Despite this, the middle-end manages to produce something runnable. :-)