xref: /llvm-project/flang/test/Semantics/present01.f90 (revision 3bca8506ab65c66e32695ba50571c4384be8e4d1)
1*3bca8506SPeter Klausler! RUN: %python %S/test_errors.py %s %flang_fc1
2*3bca8506SPeter Klauslermodule m
3*3bca8506SPeter Klausler  type dt
4*3bca8506SPeter Klausler    real a
5*3bca8506SPeter Klausler  end type
6*3bca8506SPeter Klausler contains
7*3bca8506SPeter Klausler  subroutine s(a,b,p,unl)
8*3bca8506SPeter Klausler    type(dt), optional :: a(:), b
9*3bca8506SPeter Klausler    procedure(sin), optional :: p
10*3bca8506SPeter Klausler    type(*), optional :: unl
11*3bca8506SPeter Klausler    print *, present(a) ! ok
12*3bca8506SPeter Klausler    print *, present(p) ! ok
13*3bca8506SPeter Klausler    print *, present(unl) ! ok
14*3bca8506SPeter Klausler    !ERROR: Argument of PRESENT() must be the name of a whole OPTIONAL dummy argument
15*3bca8506SPeter Klausler    print *, present(a(1))
16*3bca8506SPeter Klausler    !ERROR: Argument of PRESENT() must be the name of a whole OPTIONAL dummy argument
17*3bca8506SPeter Klausler    print *, present(b%a)
18*3bca8506SPeter Klausler    !ERROR: Argument of PRESENT() must be the name of a whole OPTIONAL dummy argument
19*3bca8506SPeter Klausler    print *, present(a(1)%a)
20*3bca8506SPeter Klausler  end
21*3bca8506SPeter Klauslerend
22