https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86277
--- Comment #3 from Harald Anlauf <anlauf at gmx dot de> --- (In reply to Harald Anlauf from comment #2) > Actually, the problem is not related to zero length arrays, but to the > constructor [integer::]. I think this is related to several other PRs. Looking at the dump-tree parts related to the lines > integer, parameter :: m(0) = 42 > call i(m) > call i([integer::]) > call i([integer::m]) shows that only the first call variant has a sane version of the actual argument, while the other two have two(!) strange array descriptors with a NULL data pointer, e.g.: struct array01_integer(kind=4) atmp.8; struct array01_integer(kind=4) atmp.10; typedef integer(kind=4) [0]; atmp.8.dtype = {.elem_len=4, .rank=1, .type=1}; atmp.8.dim[0].stride = 1; atmp.8.dim[0].lbound = 0; atmp.8.dim[0].ubound = -1; atmp.8.data = 0B; atmp.8.offset = 0; typedef integer(kind=4) [0]; atmp.10.dtype = {.elem_len=4, .rank=1, .type=1}; atmp.10.dim[0].stride = 1; atmp.10.dim[0].lbound = 0; atmp.10.dim[0].ubound = -1; atmp.10.data = 0B; atmp.10.offset = 0; A bookkeeping issue?