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
50 lines
1.1 KiB
Fortran
50 lines
1.1 KiB
Fortran
! RUN: %python %S/test_errors.py %s %flang_fc1
|
|
! Check for semantic errors in NULLIFY statements
|
|
|
|
INTEGER, PARAMETER :: maxvalue=1024
|
|
|
|
Type dt
|
|
Integer :: l = 3
|
|
End Type
|
|
Type t
|
|
Type(dt) :: p
|
|
End Type
|
|
|
|
Type(t),Allocatable :: x(:)
|
|
|
|
Integer :: pi
|
|
Procedure(Real) :: prp
|
|
|
|
Allocate(x(3))
|
|
!ERROR: component in NULLIFY statement must have the POINTER attribute
|
|
Nullify(x(2)%p)
|
|
|
|
!ERROR: name in NULLIFY statement must have the POINTER attribute
|
|
Nullify(pi)
|
|
|
|
!ERROR: name in NULLIFY statement must have the POINTER attribute
|
|
Nullify(prp)
|
|
|
|
!ERROR: name in NULLIFY statement must be a variable or procedure pointer name
|
|
Nullify(maxvalue)
|
|
|
|
End Program
|
|
|
|
! Make sure that the compiler doesn't crash when NULLIFY is used in a context
|
|
! that has reported errors
|
|
module badNullify
|
|
interface
|
|
module function ptrFun()
|
|
integer, pointer :: ptrFun
|
|
end function
|
|
end interface
|
|
contains
|
|
!ERROR: 'ptrfun' was not declared a separate module procedure
|
|
module function ptrFun()
|
|
integer, pointer :: ptrFun
|
|
real :: realVar
|
|
nullify(ptrFun)
|
|
nullify(realVar)
|
|
end function
|
|
end module
|