[Bug fortran/33254] Diagnose different string lengths in array constructors at run time
tobi at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Sun Oct 21 21:18:00 GMT 2007
------- Comment #16 from tobi at gcc dot gnu dot org 2007-10-21 21:18 -------
Re this testcase:
(In reply to comment #5)
> program array_char
> implicit none
> character (len=2) :: x, y
> character (len=2) :: z(2)
> x = "a "
> y = "cd"
> z = (/y(1:len(trim(y))), x(1:len(trim(x)))/) ! causes segfault
> print *, "'", z(1), "' '", z(2), "'"
> end program array_char
Changing z's length to, say, 5 shows that the strings are correctly padded,
i.e. z(1) == "cd " after the assignment, so there's only an issue with
bounds-checking not working on this code, it doesn't expose another bug. I've
yet to figure out how to evaluate the string length, and only evaluate it once.
Dominique has correctly identified one of the crucial parts of the code in
#14. I hope I can look at this tomorrow night or Wednesday night.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33254
More information about the Gcc-bugs
mailing list