To enable Flang testing on Windows, shell scripts have to be ported to Python. In this patch the "test_errors.sh" script is ported to python ("test_errors.py"). The RUN line of existing tests was changed to make use of the python script.
Used python regex in place of awk/sed.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D107575
44 lines
1.6 KiB
Fortran
44 lines
1.6 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
! Test 15.4.2.2 constraints and restrictions for calls to implicit
|
|
! interfaces
|
|
|
|
subroutine s(assumedRank, coarray, class, classStar, typeStar)
|
|
type :: t
|
|
end type
|
|
|
|
real :: assumedRank(..), coarray[*]
|
|
class(t) :: class
|
|
class(*) :: classStar
|
|
type(*) :: typeStar
|
|
|
|
type :: pdt(len)
|
|
integer, len :: len
|
|
end type
|
|
type(pdt(1)) :: pdtx
|
|
|
|
!ERROR: Invalid specification expression: reference to impure function 'implicit01'
|
|
real :: array(implicit01()) ! 15.4.2.2(2)
|
|
!ERROR: Keyword 'keyword=' may not appear in a reference to a procedure with an implicit interface
|
|
call implicit10(1, 2, keyword=3) ! 15.4.2.2(1)
|
|
!ERROR: Assumed rank argument requires an explicit interface
|
|
call implicit11(assumedRank) ! 15.4.2.2(3)(c)
|
|
!ERROR: Coarray argument requires an explicit interface
|
|
call implicit12(coarray) ! 15.4.2.2(3)(d)
|
|
!ERROR: Parameterized derived type argument requires an explicit interface
|
|
call implicit13(pdtx) ! 15.4.2.2(3)(e)
|
|
!ERROR: Polymorphic argument requires an explicit interface
|
|
call implicit14(class) ! 15.4.2.2(3)(f)
|
|
!ERROR: Polymorphic argument requires an explicit interface
|
|
call implicit15(classStar) ! 15.4.2.2(3)(f)
|
|
!ERROR: Assumed type argument requires an explicit interface
|
|
call implicit16(typeStar) ! 15.4.2.2(3)(f)
|
|
!ERROR: TYPE(*) dummy argument may only be used as an actual argument
|
|
if (typeStar) then
|
|
endif
|
|
!ERROR: TYPE(*) dummy argument may only be used as an actual argument
|
|
classStar = typeStar ! C710
|
|
!ERROR: TYPE(*) dummy argument may only be used as an actual argument
|
|
typeStar = classStar ! C710
|
|
end subroutine
|
|
|