| ! { dg-do compile } |
| ! { dg-options "-fcheck=mem" } |
| ! |
| ! Test the fix for PR99545, in which the allocate statements caused an ICE. |
| ! |
| ! Contributed by Juergen Reuter <juergen.reuter@desy.de> |
| ! |
| module commands |
| implicit none |
| private |
| |
| type, abstract :: range_t |
| integer :: step_mode = 0 |
| integer :: n_step = 0 |
| end type range_t |
| |
| type, extends (range_t) :: range_int_t |
| integer :: i_step = 0 |
| end type range_int_t |
| |
| type, extends (range_t) :: range_real_t |
| real :: lr_step = 0 |
| end type range_real_t |
| |
| type :: cmd_scan_t |
| private |
| class(range_t), dimension(:), allocatable :: range |
| contains |
| procedure :: compile => cmd_scan_compile |
| end type cmd_scan_t |
| |
| contains |
| |
| subroutine cmd_scan_compile (cmd) |
| class(cmd_scan_t), intent(inout) :: cmd |
| allocate (range_int_t :: cmd%range (3)) |
| allocate (range_real_t :: cmd%range (3)) |
| end subroutine cmd_scan_compile |
| |
| end module commands |