blob: d7b8ce397329553d24f379b0ac5dfda621f32aab [file] [log] [blame]
! Test lowering of derived type temporary creation and init
! RUN: bbc -emit-fir -hlfir=false %s -o - | FileCheck %s
program derived_temp_init
type t1
integer, allocatable :: i
end type
type t2
type(t1) :: c
end type
type(t1) :: x
type(t2) :: y
y = t2(x)
end
! CHECK: %[[x:.*]] = fir.alloca !fir.type<_QFTt1{i:!fir.box<!fir.heap<i32>>}> {bindc_name = "x", uniq_name = "_QFEx"}
! CHECK: %[[ADDR:.*]] = fir.address_of(@_QQ_QFTt1.DerivedInit) : !fir.ref<!fir.type<_QFTt1{i:!fir.box<!fir.heap<i32>>}>>
! CHECK: %[[LOAD:.*]] = fir.load %[[ADDR]] : !fir.ref<!fir.type<_QFTt1{i:!fir.box<!fir.heap<i32>>}>>
! CHECK: fir.store %[[LOAD]] to %[[x]] : !fir.ref<!fir.type<_QFTt1{i:!fir.box<!fir.heap<i32>>}>>