Files
clang-p2996/flang/test/Semantics/null-init.f90
Michael Kruse 58c3f20bbf [flang][windows] Run regression tests under Windows. NFCI.
Allow the lit test suite to run under Windows. This encompasses the following changes:

 * Define `lit_tools_dir` for flang's test configuration
 * Replace `(<command> || true)` idiom with `not <command>`
 * Add `REQUIRES: shell` on tests that invoke a shell script

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D89368
2021-06-10 05:13:44 -05:00

77 lines
1.6 KiB
Fortran

! RUN: %S/test_errors.sh %s %t %flang_fc1
! REQUIRES: shell
! Tests valid and invalid NULL initializers
module m1
implicit none
!ERROR: No explicit type declared for 'null'
private :: null
end module
module m2
implicit none
private :: null
integer, pointer :: p => null()
end module
module m3
private :: null
integer, pointer :: p => null()
end module
module m4
intrinsic :: null
integer, pointer :: p => null()
end module
module m5
external :: null
!ERROR: Pointer initializer must be intrinsic NULL()
integer, pointer :: p => null()
end module
module m6
!ERROR: Symbol 'null' cannot have both INTRINSIC and EXTERNAL attributes
integer, pointer :: p => null()
external :: null
end module
module m7
interface
function null() result(p)
integer, pointer :: p
end function
end interface
!ERROR: Pointer initializer must be intrinsic NULL()
integer, pointer :: p => null()
end module
module m8
integer, pointer :: p => null()
interface
!ERROR: 'null' is already declared in this scoping unit
function null() result(p)
integer, pointer :: p
end function
end interface
end module
module m9a
intrinsic :: null
contains
function foo()
integer, pointer :: foo
foo => null()
end function
end module
module m9b
use m9a, renamed => null, null => foo
integer, pointer :: p => renamed()
!ERROR: Pointer initializer must be intrinsic NULL()
integer, pointer :: q => null()
integer, pointer :: d1, d2
data d1/renamed()/
!ERROR: An initial data target must be a designator with constant subscripts
data d2/null()/
end module