| ! RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s |
| program p |
| type t |
| integer :: x |
| end type |
| |
| type(t), pointer :: ptr |
| type(t), allocatable :: al |
| allocate(ptr, al) |
| |
| !$omp target |
| ptr%x = ptr%x + 1 |
| al%x = al%x + 1 |
| !$omp end target |
| end program |
| |
| ! CHECK-LABEL: omp.declare_mapper @_QQFt_omp_default_mapper |
| |
| ! CHECK-LABEL: func.func @_QQmain |
| ! The pointer capture should not get an implicit default mapper. |
| ! CHECK: %[[PTR_PTEE_MAP:.*]] = omp.map.info {{.*}}map_clauses(implicit, tofrom){{.*}} {name = ""} |
| ! CHECK: %[[PTR_DESC_MAP:.*]] = omp.map.info {{.*}}members(%[[PTR_PTEE_MAP]]{{.*}}){{.*}} {name = "ptr"} |
| |
| ! The allocatable capture should still use the implicit default mapper. |
| ! CHECK: %[[ALLOC_PTEE_MAP:.*]] = omp.map.info {{.*}}map_clauses(implicit, tofrom){{.*}}mapper(@_QQFt_omp_default_mapper){{.*}} {name = ""} |
| ! CHECK: %[[ALLOC_DESC_MAP:.*]] = omp.map.info {{.*}}members(%[[ALLOC_PTEE_MAP]]{{.*}}){{.*}} {name = "al"} |