! Test generation of fir.dt_component ! RUN: bbc -emit-hlfir %s -o - | FileCheck %s subroutine test_1(x) integer, save, target :: my_target procedure() :: my_proc type :: sometype integer :: i(-1:8) = 42 integer :: j(1:8) integer, allocatable :: alloc(:) integer, pointer :: p => my_target integer, pointer :: p2 => NULL() integer, pointer :: p3 procedure(), pointer, nopass :: proc_p => my_proc procedure(), pointer, nopass :: proc_p2 => NULL() procedure(), pointer, nopass :: proc_p3 end type type(sometype) :: x end subroutine ! CHECK-LABEL: fir.type_info @_QFtest_1Tsometype ! CHECK-SAME component_info { ! CHECK: fir.dt_component "i" lbs [-1] init @_QFtest_1E.di.sometype.i ! CHECK-NOT: fir.dt_component "j" ! CHECK: fir.dt_component "p" init @_QFtest_1E.di.sometype.p ! CHECK: fir.dt_component "p2" init @_QFtest_1E.di.sometype.p2 ! CHECK: fir.dt_component "proc_p" init @_QPmy_proc ! CHECK: } subroutine test_nesting(x) type some_sub_type integer :: i = 42 end type type sometype2 type(some_sub_type) :: nested end type type(sometype2) :: x end subroutine ! CHECK-LABEL: fir.type_info @_QFtest_nestingTsome_sub_type ! CHECK-SAME component_info { ! CHECK: fir.dt_component "i" init @_QFtest_nestingE.di.some_sub_type.i ! CHECK: } ! CHECK: fir.type_info @_QFtest_nestingTsometype2 ! CHECK-NOT: fir.dt_component subroutine data_like(x) type sometype3 integer :: i/42/ end type type(sometype3) :: x end subroutine ! CHECK-LABEL: fir.type_info @_QFdata_likeTsometype3 ! CHECK-SAME component_info { ! CHECK: fir.dt_component "i" init @_QFdata_likeE.di.sometype3.i ! CHECK: }