https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102787
--- Comment #5 from anlauf at gcc dot gnu.org --- Looks like an issue with simplification of array within array constructor: print *, - a print *, - [a] print *, - [[a]] end -fdump-fortran-original produces: code: WRITE UNIT=6 FMT=-1 TRANSFER (/ -2 /) DT_END WRITE UNIT=6 FMT=-1 TRANSFER (/ (/ -2 /) /) DT_END WRITE UNIT=6 FMT=-1 TRANSFER (/ -2 /) DT_END -fdump-tree-original confirms this.