1*d0829fbdSjeanPerier! RUN: bbc -emit-fir %s -o - | FileCheck %s --check-prefix=FIR 2*d0829fbdSjeanPerier! RUN: bbc -emit-fir -hlfir %s -o - | FileCheck %s --check-prefix=HLFIR 3fdce1b7eSSlava Zakharin 4fdce1b7eSSlava Zakharinsubroutine test 5fdce1b7eSSlava Zakharin interface 6fdce1b7eSSlava Zakharin subroutine s1p(n) 7fdce1b7eSSlava Zakharin type t 8fdce1b7eSSlava Zakharin integer :: n 9fdce1b7eSSlava Zakharin end type t 10fdce1b7eSSlava Zakharin class(t), pointer :: n 11fdce1b7eSSlava Zakharin end subroutine s1p 12fdce1b7eSSlava Zakharin end interface 13fdce1b7eSSlava Zakharin call s1p(null()) 14fdce1b7eSSlava Zakharinend subroutine test 15fdce1b7eSSlava Zakharin! FIR-LABEL: func.func @_QPtest() { 16fdce1b7eSSlava Zakharin! FIR: %[[VAL_0:.*]] = fir.alloca !fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>> 17fdce1b7eSSlava Zakharin! FIR: %[[VAL_1:.*]] = fir.zero_bits !fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>> 18fdce1b7eSSlava Zakharin! FIR: %[[VAL_2:.*]] = fir.embox %[[VAL_1]] : (!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>) -> !fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>> 19fdce1b7eSSlava Zakharin! FIR: fir.store %[[VAL_2]] to %[[VAL_0]] : !fir.ref<!fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>>> 20fdce1b7eSSlava Zakharin! FIR: fir.call @_QPs1p(%[[VAL_0]]) fastmath<contract> : (!fir.ref<!fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>>>) -> () 21fdce1b7eSSlava Zakharin! FIR: return 22fdce1b7eSSlava Zakharin! FIR: } 23fdce1b7eSSlava Zakharin 24fdce1b7eSSlava Zakharin! HLFIR-LABEL: func.func @_QPtest() { 25fdce1b7eSSlava Zakharin! HLFIR: %[[VAL_0:.*]] = fir.alloca !fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>> 26fdce1b7eSSlava Zakharin! HLFIR: %[[VAL_1:.*]] = fir.zero_bits !fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>> 27fdce1b7eSSlava Zakharin! HLFIR: %[[VAL_2:.*]] = fir.embox %[[VAL_1]] : (!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>) -> !fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>> 28fdce1b7eSSlava Zakharin! HLFIR: fir.store %[[VAL_2]] to %[[VAL_0]] : !fir.ref<!fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>>> 29fdce1b7eSSlava Zakharin! HLFIR: fir.call @_QPs1p(%[[VAL_0]]) fastmath<contract> : (!fir.ref<!fir.class<!fir.ptr<!fir.type<_QFtestFs1pTt{n:i32}>>>>) -> () 30fdce1b7eSSlava Zakharin! HLFIR: return 31fdce1b7eSSlava Zakharin! HLFIR: } 32