| ! { dg-do compile } |
| ! PR fortran/50549 - should reject pointer assignments of different lengths |
| ! in structure constructors |
| |
| program test |
| implicit none |
| type t |
| character(2), pointer :: p2 |
| end type t |
| type t2 |
| character(2), pointer :: p(:) |
| end type t2 |
| type td |
| character(:), pointer :: pd |
| end type td |
| interface |
| function f1 () |
| character(1), pointer :: f1 |
| end function f1 |
| function f2 () |
| character(2), pointer :: f2 |
| end function f2 |
| end interface |
| |
| character(1), target :: p1 |
| character(1), pointer :: q1(:) |
| character(2), pointer :: q2(:) |
| type(t) :: u |
| type(t2) :: u2 |
| type(td) :: v |
| u = t(p1) ! { dg-error "Unequal character lengths" } |
| u = t(f1()) ! { dg-error "Unequal character lengths" } |
| u = t(f2()) ! OK |
| u2 = t2(q1) ! { dg-error "Unequal character lengths" } |
| u2 = t2(q2) ! OK |
| v = td(p1) ! OK |
| v = td(f1()) ! OK |
| end |