https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96325
--- Comment #6 from kargl at gcc dot gnu.org --- This is a nasty bug, and I've run out of ideas on how to find a fix. :( Simplified testcase implicit none type t2 integer r1 end type type(t2) :: t integer :: a a = t%r1%foo(1) ! There is no foo component/TBP if (a == 42) stop end -fdump-tree-original gives MAIN__ () { integer(kind=4) a; struct t2 t; a = 1; if (a == 42) { _gfortran_stop_string (0B, 0, 0); } L.1:; }