Accept any keyword argument names of the form "An" for values of n >= 3 in calls to the intrinsic functions MAX, MIN, and their variants, so long as "n" has no leading zero and all the keywords are distinct. Previously, f18 was needlessly requiring the names to be contiguous. When synthesizing keywords to characterize the procedure's interface, don't conflict with the program's keywords. Differential Revision: https://reviews.llvm.org/D117701
13 lines
515 B
Fortran
13 lines
515 B
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
! Check errors on MAX/MIN with keywords, a weird case in Fortran
|
|
real :: x = 0.0 ! prevent folding
|
|
!ERROR: Argument keyword 'a1=' was repeated in call to 'max'
|
|
print *, max(a1=x,a1=1)
|
|
!ERROR: Keyword argument 'a1=' has already been specified positionally (#1) in this procedure reference
|
|
print *, max(x,a1=1)
|
|
print *, max(a1=x,a2=0,a4=0) ! ok
|
|
print *, max(x,0,a99=0) ! ok
|
|
!ERROR: Argument keyword 'a06=' is not known in call to 'max'
|
|
print *, max(a1=x,a2=0,a06=0)
|
|
end
|