| ! { dg-do compile } |
| ! PR fortran/102332 - ICE in select_type_set_tmp |
| ! Contributed by G.Steinmetz |
| |
| program p |
| type t |
| real :: a, b |
| end type |
| class(t), allocatable :: x ! Valid |
| select type (y => x) |
| type is (t) |
| y%a = 0 |
| end select |
| end |
| |
| subroutine s0 (x) |
| type t |
| real :: a, b |
| end type |
| class(t) :: x ! Valid |
| select type (y => x) |
| type is (t) |
| y%a = 0 |
| end select |
| end |
| |
| subroutine s1 |
| type t |
| real :: a, b |
| end type |
| class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" } |
| select type (y => x) |
| type is (t) |
| y%a = 0 |
| end select |
| end |
| |
| subroutine s3 |
| type t |
| real :: a, b |
| end type |
| class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" } |
| select type (y => x) |
| class is (t) |
| y%a = 0 |
| end select |
| end |
| |
| subroutine s2 |
| type t |
| real :: a, b |
| end type |
| class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" } |
| select type (y => x) |
| type default ! { dg-error "Expected" } |
| y%a = 0 |
| end select |
| end |
| |
| subroutine s4 |
| type t |
| real :: a, b |
| end type |
| class(t) :: x ! { dg-error "must be dummy, allocatable or pointer" } |
| select type (y => x) |
| class default |
| y%a = 0 |
| end select |
| end |