| ! RUN: %python %S/test_errors.py %s %flang_fc1 |
| pure subroutine s1 |
| contains |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| subroutine t1 |
| end |
| pure subroutine t2 ! ok |
| end |
| elemental subroutine t3(k) ! ok |
| integer, intent(in) :: k |
| end |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| impure elemental subroutine t4(k) |
| integer, intent(in) :: k |
| end |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| elemental impure subroutine t5(k) |
| integer, intent(in) :: k |
| end |
| end |
| |
| elemental subroutine s2(j) |
| integer, intent(in) :: j |
| contains |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| subroutine t1 |
| end |
| pure subroutine t2 ! ok |
| end |
| elemental subroutine t3(k) ! ok |
| integer, intent(in) :: k |
| end |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| impure elemental subroutine t4(k) |
| integer, intent(in) :: k |
| end |
| !ERROR: An internal subprogram of a pure subprogram must also be pure |
| elemental impure subroutine t5(k) |
| integer, intent(in) :: k |
| end |
| end |
| |
| impure elemental subroutine s3(j) |
| integer, intent(in) :: j |
| contains |
| subroutine t1 |
| end |
| pure subroutine t2 |
| end |
| elemental subroutine t3(k) |
| integer, intent(in) :: k |
| end |
| impure elemental subroutine t4(k) |
| integer, intent(in) :: k |
| end |
| elemental impure subroutine t5(k) |
| integer, intent(in) :: k |
| end |
| end |