| ! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic |
| ! Structure constructors with bad pointer targets |
| module m |
| real, target, save :: x |
| type t |
| real, pointer :: rp => x |
| procedure(f), pointer, nopass :: pp => f |
| end type |
| contains |
| real function f() |
| f = 0. |
| end |
| subroutine test(da, dp) |
| real, target :: y, da |
| procedure(f) dp |
| procedure(f), pointer :: lpp |
| external ext |
| type(t) :: a1 = t() ! ok |
| type(t) :: a2 = t(rp=x) ! ok |
| type(t) :: a3 = t(pp=f) ! ok |
| type(t) :: a4 = t(pp=ext) ! ok |
| !ERROR: Must be a constant value |
| type(t) :: a5 = t(rp=y) |
| !ERROR: Must be a constant value |
| type(t) :: a6 = t(rp=da) |
| !ERROR: Must be a constant value |
| type(t) :: a7 = t(pp=lpp) |
| !ERROR: Must be a constant value |
| type(t) :: a8 = t(pp=internal) |
| !ERROR: Must be a constant value |
| type(t) :: a9 = t(pp=dp) |
| contains |
| real function internal() |
| internal = 666. |
| end |
| end |
| end |