| ! With bind(C), the C (CFI) array descriptor is converted to | |
| ! a Fortran array descriptor - thus, internally a PARM_DECL is | |
| ! converted to a VAR_DECL - check that the optional check still works | |
| module m | |
| contains | |
| subroutine foo(x, y) bind(C) | |
| integer, optional :: x,y(:) | |
| !$omp target map(tofrom:x) | |
| if (present (x)) x = 5 | |
| if (present (y)) y(1) = 5 | |
| !$omp end target | |
| end | |
| end | |
| use m | |
| call foo() | |
| end |