https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93678
--- Comment #9 from anlauf at gcc dot gnu.org --- Another data point: comparing the -fdump-fortran-original of res = b_unpackbytes (me) ! ok vs. res = me% unpackbytes () ! ICE I see: ASSIGN b_unpackint:res(FULL) b_unpackbytes[[((b_unpackint:me))]] vs. ASSIGN b_unpackint:res(FULL) b_unpackbytes % _vptr % unpackbytes[[((b_unpackint:me))]] This hasn't changed since gcc-7. Maybe Paul(?) has some idea?