| ! { dg-additional-options "-fdump-tree-gimple" } |
| |
| ! PR fortran/114283 |
| |
| ! { dg-final { scan-tree-dump "#pragma omp parallel shared\\(i\\) if\\(0\\) default\\(none\\) firstprivate\\(g\\)" "gimple" } } |
| ! { dg-final { scan-tree-dump "#pragma omp target num_teams\\(-2\\) thread_limit\\(0\\) firstprivate\\(h\\) map\\(from:j \\\[len: 4\\\]\\) defaultmap\\(none\\)" "gimple" } } |
| |
| |
| module m |
| implicit none (type, external) |
| !$omp declare target indirect enter(f1, f2) |
| contains |
| integer function f1 () |
| f1 = 99 |
| end |
| integer function f2 () |
| f2 = 89 |
| end |
| end module m |
| |
| use m |
| implicit none (type, external) |
| call sub1(f1) |
| call sub2(f2) |
| contains |
| subroutine sub1(g) |
| procedure(integer) :: g |
| integer :: i |
| !$omp parallel default(none) if(.false.) shared(i) |
| i = g () |
| !$omp end parallel |
| if (i /= 99) stop 1 |
| end |
| |
| subroutine sub2(h) |
| procedure(integer) :: h |
| integer :: j |
| !$omp target defaultmap(none) map(from:j) |
| j = h () |
| !$omp end target |
| if (j /= 89) stop 1 |
| end |
| end |