https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103898
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- In GCC 11.2.0, we had: D.3972 = dim != 0B; mysize = D.3972 ? (integer(kind=4)) _gfortran_size1 (D.3971, (integer(kind=8)) *dim) : (integer(kind=4)) _gfortran_size0 (D.3971); While on the trunk we have: D.4255 = dim != 0B; if (D.4255) { MAX_EXPR <(parm.4.dim[0].ubound - parm.4.dim[0].lbound) + 1, 0> = MAX_EXPR <(parm.4.dim[(integer(kind=8)) *dim + -1].ubound - parm.4.dim[(integer(kind=8)) *dim + -1].lbound) + 1, 0>; } mysize = (integer(kind=4)) MAX_EXPR <(parm.4.dim[0].ubound - parm.4.dim[0].lbound) + 1, 0>;