blob: 650471245afdc7cdf2acac9423e3625420304ebe [file] [edit]
! RUN: %python %S/test_errors.py %s %flang_fc1
! Test AT edit descriptor (Fortran 2023)
character(10) :: str
character(kind=2,len=10) :: str2
character(kind=4,len=10) :: str4
! Valid: AT with WRITE
write(*, '(AT)') 'hello'
write(*, '(AT)') str
write(*, '(2AT)') 'abc', 'def'
! Valid: AT with non-default character kinds
write(*, '(AT)') str2
write(*, '(AT)') str4
write(*, '(2AT)') str2, str4
! Valid: AT in FORMAT statement for WRITE
1 format(AT)
write(*,1) 'hello'
! Error: AT must not be used for input
!ERROR: 'AT' edit descriptor must not be used for input
read(*, '(AT)') str
! Error: AT must not be used for input with non-default kinds
!ERROR: 'AT' edit descriptor must not be used for input
read(*, '(AT)') str2
!ERROR: 'AT' edit descriptor must not be used for input
read(*, '(AT)') str4
! AT does not accept a width
!ERROR: 'AT' edit descriptor does not accept a width value
write(*, '(AT10)') str
!ERROR: 'AT' edit descriptor does not accept a width value
!ERROR: Unexpected '.' in format expression
write(*, '(AT10.2)') str
! AT with width on input produces two and three independent errors.
!ERROR: 'AT' edit descriptor does not accept a width value
!ERROR: 'AT' edit descriptor must not be used for input
read(*, '(AT10)') str
!ERROR: 'AT' edit descriptor does not accept a width value
!ERROR: 'AT' edit descriptor must not be used for input
!ERROR: Unexpected '.' in format expression
read(*, '(AT10.2)') str
! FORMAT statements are standalone; the compiler cannot know if they will
! be used with READ or WRITE, so no compile-time error is expected here.
2 format(AT)
read(*,2) str
! AT with width in FORMAT statements; report compiling error, but not
! READ error.
!ERROR: 'AT' edit descriptor does not accept a width value
3 format(AT10)
write(*,3) str
!ERROR: 'AT' edit descriptor does not accept a width value
!ERROR: Unexpected '.' in format expression
4 format(AT10.2)
read(*,4) str
end