http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55735
Bug #: 55735 Summary: ICE with deferred-length strings in COMMON Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org I think the following test case it valid. In any case, an ICE is a bug. Vaguely related is PR 55733. block data character(len=:), pointer :: str(:) common /foo/ str end block data subroutine bar() character(len=:), pointer :: str common /foo/ str ! print *, len(str), '"'//str//'"' !ICE in gfc_conv_intrinsic_len print '(3a)', '"',str(1:6),'"' ! ICE in gfc_conv_variable end character(len=:), pointer :: str(:) common /foo/ str allocate (character(len=6) :: str(1)) str = "ABCDEF" call bar() end