------- Comment #5 from dfranke at gcc dot gnu dot org 2010-07-08 20:13 -------
(In reply to comment #4)
> I'd hazard the guess that some string length is not properly copied somewhere.
Type :: t
character (len=X) :: txt(2)
End Type
Type (t) :: tt = t((/ "12345", "67890" /))
print *, tt
End
compilation output
X=3, 4.5 ok, but no truncation warning "123678"
X=3, trunk ok, but no truncation warning "1236" <-- wrong
X=5, 4.5 ok "1234567890"
X=5, trunk ok "1234567890"
X=7, 4.5 ok "1234567890" <-- wrong?
X=7, trunk ICE
In the last case, I'd expect the output "12345 67890 " - is 4.5 wrong here?
Possibly related functions:
resolve.c (resolve_structure_cons)
array.c (gfc_resolve_character_array_constructor)
decl.c (gfc_set_constant_character_len)
Possibly related PR:
PR42526
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44857