| ! { dg-do run } |
| ! ! { dg-options "-fcheck=recursion" } |
| ! PR 95743 - this used cause a runtime error. |
| ! Test case by Antoine Lemoine |
| |
| program test_recursive_call |
| implicit none |
| |
| type t_tree_node |
| type(t_tree_node), dimension(:), allocatable :: child |
| end type |
| |
| type t_tree |
| type(t_tree_node), allocatable :: root |
| end type |
| |
| type(t_tree), allocatable :: tree |
| |
| allocate(tree) |
| allocate(tree%root) |
| allocate(tree%root%child(1)) |
| ! If the line below is removed, the code works fine. |
| allocate(tree%root%child(1)%child(1)) |
| deallocate(tree) |
| end program |