https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83146
--- Comment #2 from Neil Carlson <neil.n.carlson at gmail dot com> --- Turns out you don't need anything at all in the associate block to get an ICE: type foo integer n end type type bar type(foo) array(2) end type type(bar) b associate (n_array => b%array%n) end associate end