| ! { dg-do run } |
| ! { dg-options "-fdump-tree-original" } |
| ! |
| ! PR fortran/41907 |
| ! |
| program test |
| implicit none |
| call scalar1 () |
| call assumed_shape1 () |
| call explicit_shape1 () |
| contains |
| |
| ! Calling functions |
| subroutine scalar1 (slr1) |
| integer, optional :: slr1 |
| call scalar2 (slr1) |
| end subroutine scalar1 |
| |
| subroutine assumed_shape1 (as1) |
| integer, dimension(:), optional :: as1 |
| call assumed_shape2 (as1) |
| call explicit_shape2 (as1) |
| end subroutine assumed_shape1 |
| |
| subroutine explicit_shape1 (es1) |
| integer, dimension(5), optional :: es1 |
| call assumed_shape2 (es1) |
| call explicit_shape2 (es1) |
| end subroutine explicit_shape1 |
| |
| |
| ! Called functions |
| subroutine assumed_shape2 (as2) |
| integer, dimension(:),optional :: as2 |
| if (present (as2)) STOP 1 |
| end subroutine assumed_shape2 |
| |
| subroutine explicit_shape2 (es2) |
| integer, dimension(5),optional :: es2 |
| if (present (es2)) STOP 2 |
| end subroutine explicit_shape2 |
| |
| subroutine scalar2 (slr2) |
| integer, optional :: slr2 |
| if (present (slr2)) STOP 3 |
| end subroutine scalar2 |
| |
| end program test |