| ! Test the fix for PR98472. |
| ! Contributed by Rui Coelho <ruicoelhopedro@hotmail.com> |
| procedure(elem_func), deferred, nopass :: add |
| type, extends(base) :: derived |
| procedure, nopass :: add => add_derived |
| elemental function elem_func(x, y) result(out) |
| integer, intent(in) :: x, y |
| elemental function add_derived(x, y) result(out) |
| integer, intent(in) :: x, y |
| integer, dimension(:), allocatable :: vec |
| class(base), allocatable :: instance |
| allocate(derived :: instance) |
| allocate(vec, source=instance%add([1, 2], [1, 2])) ! ICE here |
| if (any (vec .ne. [2, 4])) stop 1 |