https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108581
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2023-03-28 00:00:00 |2025-9-11 CC| |anlauf at gcc dot gnu.org --- Comment #3 from anlauf at gcc dot gnu.org --- Reconfirmed. Workaround found while playing with the testcase: referring to the full string seems to create sufficient "confusion" to produce the correct output: write(*, *) '(1) ', y, (a(x, y)(:), x = xmin, xmax) write(*, *) '(2) ', y, a(xmin:xmax, y)(:) write(*, *) '(3) ', y, a(:, y)(:) Seems we're confusing an array reference with a substring reference.