// Test hlfir.destroy operation parse, verify (no errors), and unparse.
// RUN: fir-opt %s | fir-opt | FileCheck %s
func.func @test(%expr : !hlfir.expr<?x?xf64>) {
hlfir.destroy %expr : !hlfir.expr<?x?xf64>
return
}
// CHECK-LABEL: func.func @test(
// CHECK-SAME: %[[VAL_0:.*]]: !hlfir.expr<?x?xf64>) {
// CHECK: hlfir.destroy %[[VAL_0]] : !hlfir.expr<?x?xf64>
func.func @test_finalize_dt(%expr : !hlfir.expr<?x!fir.type<_QMtypesTt>>) {
hlfir.destroy %expr finalize : !hlfir.expr<?x!fir.type<_QMtypesTt>>
return
}
// CHECK-LABEL: func.func @test_finalize_dt(
// CHECK-SAME: %[[VAL_0:.*]]: !hlfir.expr<?x!fir.type<_QMtypesTt>>) {
// CHECK: hlfir.destroy %[[VAL_0]] finalize : !hlfir.expr<?x!fir.type<_QMtypesTt>>
func.func @test_finalize_poly(%expr : !hlfir.expr<?x!fir.type<_QMtypesTt>?>) {
hlfir.destroy %expr finalize : !hlfir.expr<?x!fir.type<_QMtypesTt>?>
return
}
// CHECK-LABEL: func.func @test_finalize_poly(
// CHECK-SAME: %[[VAL_0:.*]]: !hlfir.expr<?x!fir.type<_QMtypesTt>?>) {
// CHECK: hlfir.destroy %[[VAL_0]] finalize : !hlfir.expr<?x!fir.type<_QMtypesTt>?>