https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84141
--- Comment #16 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- This is strange. Looking at the small reproducer and grepping for the settings to dtype with diff -b -u repro.f90.old repro.f90.new |grep 'dtype.*=' where repro.f90.old is the output of -fdump-tree-original with r257064 and repro.f90.new for r257131, the difference is - (*(struct vamp_equivalence_t[0:] * restrict) eq->eq.data)[eq->eq.offset + (integer(kind=8)) *i].permutation.dtype = 265; + (*(struct vamp_equivalence_t[0:] * restrict) eq->eq.data)[eq->eq.offset + (integer(kind=8)) *i].permutation.dtype = {.elem_len=4, .rank=1, .type=1}; - eq->eq.dtype = 4137; + eq->eq.dtype = {.elem_len=72, .rank=1, .type=5}; - eq->permutation.dtype = 265; + eq->permutation.dtype = {.elem_len=4, .rank=1, .type=1}; - n_bin.dtype = 266; + n_bin.dtype = {.elem_len=4, .rank=2, .type=1}; - desc.53.dtype = 1064; + desc.53.dtype = {.elem_len=8, .rank=0, .type=11}; - perm.dtype = 265; + perm.dtype = {.elem_len=4, .rank=1, .type=1}; - atmp.61.dtype = 265; + atmp.61.dtype = {.elem_len=4, .rank=1, .type=1}; - atmp.70.dtype = 265; + atmp.70.dtype = {.elem_len=4, .rank=1, .type=1}; - atmp.73.dtype = 265; + atmp.73.dtype = {.elem_len=4, .rank=1, .type=1}; - atmp.75.dtype = 265; + atmp.75.dtype = {.elem_len=4, .rank=1, .type=1}; - channel.dtype = 3625; + channel.dtype = {.elem_len=64, .rank=1, .type=5}; - (*(struct phs_channel_t[0:] * restrict) channel.data)[channel.offset + (integer(kind=8)) ch].eq.dtype = 4137; + (*(struct phs_channel_t[0:] * restrict) channel.data)[channel.offset + (integer(kind=8)) ch].eq.dtype = {.elem_len=72, .rank=1, .type=5}; - eq->perm.dtype = 265; + eq->perm.dtype = {.elem_len=4, .rank=1, .type=1}; all of which looks plausible.