-
Notifications
You must be signed in to change notification settings - Fork 16.5k
Open
Labels
flangFlang issues not falling into any other categoryFlang issues not falling into any other category
Description
The following test was designed to test proper error reporting when reading with an invalid namelist record. Using flang, this test hangs or produces a seg fault. This safely errors out using cray ftn and gfortran.
Test:
! Test a buffer overrun when an illegal vector-valued subscript is used in
! namelist input.
! The error should be reported through the READ's IOSTAT value.
PROGRAM bad_subscript_overrun01
IMPLICIT NONE
INTEGER,DIMENSION(5) :: U, EXPECTU
INTEGER,DIMENSION(5) :: V, EXPECTV
CHARACTER(LEN=20) :: NAMELIST_RECORD
INTEGER :: IOS, ILOOP
NAMELIST /SCORES/ U
NAMELIST /CHTEST/ NAMELIST_RECORD
U = 8
EXPECTU = U
V = 9
EXPECTV = V
IOS = 0
NAMELIST_RECORD = " &SCORES U(V) = -1 /"
OPEN(UNIT=10, ACCESS='SEQUENTIAL', ACTION='READWRITE')
WRITE(10,'(A)') NAMELIST_RECORD
REWIND 10
! This should fail because of the bad index.
READ(10, NML = SCORES, IOSTAT=IOS)
CLOSE(UNIT=10, STATUS='KEEP')
! Make sure the READ status was a failure.
IF(IOS.NE.0) THEN
PRINT *, "Test 1 - PASS"
ELSE
print *, "Test 1 - FAIL"
ENDIF
! Make sure the values of the array haven't changed.
DO ILOOP = 1,5
IF(U(ILOOP).EQ.EXPECTU(ILOOP)) THEN
PRINT *, "Test 2 - PASS"
ELSE
PRINT *, "Test 2 - FAIL"
ENDIF
ENDDO
END PROGRAM bad_subscript_overrun01
flang:
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> ../../cpe-13666/build/bin/flang-new bad_subscript_overrun01.f90
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> time ./a.out
^C
real 2m36.279s
user 2m36.185s
sys 0m0.005s
gfortran:
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> gfortran bad_subscript_overrun01.f90
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> ./a.out
Test 1 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
cray ftn:
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> ftn bad_subscript_overrun01.f90
wyattke@pe34genoa:~/builds/flang_work/llvm-project/test> ./a.out
Test 1 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
Test 2 - PASS
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
flangFlang issues not falling into any other categoryFlang issues not falling into any other category