xref: /llvm-project/flang/test/Semantics/structconst09.f90 (revision 5a0382ce7ab3577630bdbb396e9ddaed8749101e)
1! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic
2! Structure constructors with bad pointer targets
3module m
4  real, target, save :: x
5  type t
6    real, pointer :: rp => x
7    procedure(f), pointer, nopass :: pp => f
8  end type
9 contains
10  real function f()
11    f = 0.
12  end
13  subroutine test(da, dp)
14    real, target :: y, da
15    procedure(f) dp
16    procedure(f), pointer :: lpp
17    external ext
18    type(t) :: a1 = t() ! ok
19    type(t) :: a2 = t(rp=x) ! ok
20    type(t) :: a3 = t(pp=f) ! ok
21    type(t) :: a4 = t(pp=ext) ! ok
22    !ERROR: Must be a constant value
23    type(t) :: a5 = t(rp=y)
24    !ERROR: Must be a constant value
25    type(t) :: a6 = t(rp=da)
26    !ERROR: Must be a constant value
27    type(t) :: a7 = t(pp=lpp)
28    !ERROR: Must be a constant value
29    type(t) :: a8 = t(pp=internal)
30    !ERROR: Must be a constant value
31    type(t) :: a9 = t(pp=dp)
32   contains
33    real function internal()
34      internal = 666.
35    end
36  end
37end
38