https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85130
anlauf at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |wrong-code CC| |anlauf at gcc dot gnu.org --- Comment #4 from anlauf at gcc dot gnu.org --- F2018 has the following changed text in 9.4.1 Substrings: ... If the starting point is greater than the ending point, the substring has length zero; otherwise, both the starting point and the ending point shall be within the range 1, 2, ..., n. ... Thus the following code would be legal: character(5), parameter :: c0(1) = [ "12345" ] print *, c0(1)(-5:-8) end and print an empty string, while it currently prints junk. It does the right thing with current trunk when parameter is removed, though.