| ! { dg-additional-options "-fdump-tree-original" } |
| |
| module m |
| use iso_c_binding |
| !use omp_lib, only: omp_allocator_handle_kind |
| implicit none |
| integer, parameter :: omp_allocator_handle_kind = c_intptr_t |
| integer :: a = 0, b = 42, c = 0 |
| |
| contains |
| subroutine foo (h) |
| integer(omp_allocator_handle_kind), value :: h |
| !$omp scope private (a) firstprivate (b) reduction (+: c) allocate ( h : a , b , c) |
| if (b /= 42) & |
| error stop |
| a = 36 |
| b = 15 |
| c = c + 1 |
| !$omp end scope |
| end |
| end |
| |
| ! { dg-final { scan-tree-dump "omp scope private\\(a\\) firstprivate\\(b\\) reduction\\(\\+:c\\) allocate\\(allocator\\(D\\.\[0-9\]+\\):a\\) allocate\\(allocator\\(D\\.\[0-9\]+\\):b\\) allocate\\(allocator\\(D\\.\[0-9\]+\\):c\\)" "original" } } |