I thought that I had already submitted this one - a search through "my bugs" and such keywords as I could think of did not succeed in finding it. If this is an old bug, please accept my apologies:
The code below causes an ICEtest_triplet.f90: in gfc_trans_scalar_assign, at fortran/trans-expr.c:2005. It is specific to CHARACTER variables and, of course, element by element assignment within a DO loop works fine. program test_triplet Character(len=5), dimension(4 ) :: i integer :: idx = 1 , N = 4 i = (/"one ","two ","three","four "/) i( N : idx + 1 : -1 ) = i( N -1 : idx : -1 ) print * , i end program test_triplet -- Summary: ICE from index triplet arithmetic for character variables Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: paul dot richard dot thomas at cea dot fr CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18752