This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/34633] New: Compiler crash on FORALL loop
- From: "holst at matmech dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Subject: [Bug fortran/34633] New: Compiler crash on FORALL loop
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Hi GCC Fortran developers!
I was playing with some CaSe changing routines and I ran into a crash when I
tried to use a FORALL statement instead of a DO loop.
The routine that is failing (from my perspective) is SUBROUTINE TO_UPPER(STR).
--
MODULE CASECONV
CONTAINS
SUBROUTINE TO_UPPER(STR)
CHARACTER(*) STR
INTEGER I
FORALL (I = 1:LEN(STR))
!DO I = 1, LEN(STR)
STR(I:I) = UC(STR(I:I))
!END DO
END FORALL
CONTAINS
ELEMENTAL FUNCTION UC(C)
CHARACTER, INTENT(IN) :: C
CHARACTER :: UC
INTEGER, PARAMETER :: DELTA = ICHAR('A') - ICHAR('a')
IF (LLE(C, 'z') .AND. LGE(C, 'a')) THEN
UC = ACHAR(ICHAR(C) + DELTA)
ELSE
UC = C
END IF
END FUNCTION UC
END SUBROUTINE TO_UPPER
END MODULE CASECONV
PROGRAM UCBUG
USE CASECONV
IMPLICIT NONE
CHARACTER(132) :: TESTSTR
TESTSTR = 'Hello, World!'
PRINT *, TRIM(TESTSTR)
CALL TO_UPPER(TESTSTR)
PRINT *, TRIM(TESTSTR)
END PROGRAM UCBUG
--
Summary: Compiler crash on FORALL loop
Product: gcc
Version: 4.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: holst at matmech dot com
GCC host triplet: x86_64-unknown-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34633