The following program gives an ICE. One reason could be the global variables.
(cf. PR27997 comment 21).
implicit none
integer i
character(len=2) :: c(3)
c = 'a'
c = [ [ trim(c(1)), 'a' ]//'c', 'cd' ]
print *, c
end
Variants to check (or combinations of those):
- Compile with -fbounds-check
- Use c = '' or c = 'ab'
- Use typespec after PR27997 has been fixed, either on the inner or on the
outer loop. E.g.
c = [ [ character(1):: trim(c(1)), 'a' ]//'c', 'cd' ]
etc.
--
Summary: ICE on nested character constructors
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35846