| !RUN: %flang_fc1 -fdebug-dump-symbols -fopenmp -fopenmp-version=60 %s | FileCheck %s | |
| module m | |
| integer :: x | |
| !$omp declare_target link(x) device_type(nohost) | |
| real :: w(10), u(10) | |
| common /named_block/ w, u | |
| !$omp declare_target link(/named_block/) | |
| interface | |
| real function g(v) | |
| real :: v(10) | |
| !$omp declare_target | |
| end | |
| end interface | |
| contains | |
| subroutine f | |
| !$omp declare_target(f) | |
| end | |
| subroutine h | |
| integer, save :: a(10) | |
| !$omp declare_target enter(h, a) | |
| continue | |
| end | |
| end module | |
| !CHECK: Module scope: m size=4 alignment=4 sourceRange=383 bytes | |
| !CHECK: f, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) | |
| !CHECK: g, EXTERNAL, PUBLIC (Function, OmpDeclareTarget): Subprogram isInterface result:REAL(4) g (REAL(4) v) OmpDeclareTargetFlags:(enter) | |
| !CHECK: h, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) | |
| !CHECK: u, PUBLIC (InCommonBlock, OmpDeclareTarget) size=40 offset=40: ObjectEntity type: REAL(4) shape: 1_8:10_8 | |
| !CHECK: w, PUBLIC (InCommonBlock, OmpDeclareTarget) size=40 offset=0: ObjectEntity type: REAL(4) shape: 1_8:10_8 | |
| !CHECK: x, PUBLIC (OmpDeclareTarget) size=4 offset=0: ObjectEntity type: INTEGER(4) OmpDeclareTargetFlags:(device_type(nohost) link) | |
| !CHECK: named_block size=80 offset=0: CommonBlockDetails alignment=4: w u OmpDeclareTargetFlags:(link) | |
| !CHECK: Subprogram scope: g size=44 alignment=4 sourceRange=57 bytes | |
| !CHECK: g size=4 offset=0: ObjectEntity funcResult type: REAL(4) | |
| !CHECK: v size=40 offset=4: ObjectEntity dummy type: REAL(4) shape: 1_8:10_8 | |
| !CHECK: Subprogram scope: f size=0 alignment=1 sourceRange=40 bytes | |
| !CHECK: f (Subroutine, OmpDeclareTarget): HostAssoc => f, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) | |
| !CHECK: Subprogram scope: h size=40 alignment=4 sourceRange=81 bytes | |
| !CHECK: a, SAVE (OmpDeclareTarget) size=40 offset=0: ObjectEntity type: INTEGER(4) shape: 1_8:10_8 OmpDeclareTargetFlags:(enter) | |
| !CHECK: h (Subroutine, OmpDeclareTarget): HostAssoc => h, PUBLIC (Subroutine): Subprogram () OmpDeclareTargetFlags:(enter) |