@@ -613,26 +613,56 @@ subroutine allocate_def_char(p0_0, p1_0, p0_1, p1_1)
613
613
subroutine deallocate_real (p0_0 , p1_0 , p0_1 , p1_1 )
614
614
type (real_p0) :: p0_0, p0_1(100 )
615
615
type (real_p1) :: p1_0, p1_1(100 )
616
- ! CHECK: %[[fld:.*]] = fir.field_index p
617
- ! CHECK: %[[coor:.*]] = fir.coordinate_of %[[p0_0]], %[[fld]]
618
- ! CHECK: fir.store {{.*}} to %[[coor]]
616
+ ! CHECK: %false = arith.constant false
617
+ ! CHECK: %[[VAL_0:.*]] = fir.absent !fir.box<none>
618
+ ! CHECK: %[[VAL_1:.*]] = fir.address_of(@_QQclX{{.*}}) : !fir.ref<!fir.char<{{.*}}>>
619
+ ! CHECK: %[[LINE_0:.*]] = arith.constant {{.*}} : i32
620
+ ! CHECK: %[[VAL_2:.*]] = fir.field_index p, !fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>
621
+ ! CHECK: %[[VAL_3:.*]] = fir.coordinate_of %arg0, %[[VAL_2]] : (!fir.ref<!fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>>, !fir.field) -> !fir.ref<!fir.box<!fir.ptr<f32>>>
622
+ ! CHECK: %[[VAL_4:.*]] = fir.convert %[[VAL_3]] : (!fir.ref<!fir.box<!fir.ptr<f32>>>) -> !fir.ref<!fir.box<none>>
623
+ ! CHECK: %[[VAL_5:.*]] = fir.convert %[[VAL_1]] : (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>
624
+ ! CHECK: %[[VAL_6:.*]] = fir.call @_FortranAPointerDeallocate(%[[VAL_4]], %false, %[[VAL_0]], %[[VAL_5]], %[[LINE_0]]) fastmath<contract> : (!fir.ref<!fir.box<none>>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32
619
625
deallocate (p0_0% p)
620
626
621
- ! CHECK-DAG: %[[coor0:.*]] = fir.coordinate_of %[[p0_1]], %{{.*}}
622
- ! CHECK-DAG: %[[fld:.*]] = fir.field_index p
623
- ! CHECK: %[[coor:.*]] = fir.coordinate_of %[[coor0]], %[[fld]]
624
- ! CHECK: fir.store {{.*}} to %[[coor]]
627
+ ! CHECK: %false_0 = arith.constant false
628
+ ! CHECK: %[[VAL_7:.*]] = fir.absent !fir.box<none>
629
+ ! CHECK: %[[VAL_8:.*]] = fir.address_of(@_QQclX{{.*}}) : !fir.ref<!fir.char<{{.*}}>>
630
+ ! CHECK: %[[LINE_1:.*]] = arith.constant {{.*}} : i32
631
+ ! CHECK: %[[CON_5:.*]] = arith.constant 5 : i64
632
+ ! CHECK: %[[CON_1:.*]] = arith.constant 1 : i64
633
+ ! CHECK: %[[VAL_9:.*]] = arith.subi %[[CON_5]], %[[CON_1]] : i64
634
+ ! CHECK: %[[VAL_10:.*]] = fir.coordinate_of %arg2, %[[VAL_9:.*]] : (!fir.ref<!fir.array<100x!fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>>>, i64) -> !fir.ref<!fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>>
635
+ ! CHECK: %[[VAL_11:.*]] = fir.field_index p, !fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>
636
+ ! CHECK: %[[VAL_12:.*]] = fir.coordinate_of %[[VAL_10]], %[[VAL_11]] : (!fir.ref<!fir.type<_QMpcompTreal_p0{p:!fir.box<!fir.ptr<f32>>}>>, !fir.field) -> !fir.ref<!fir.box<!fir.ptr<f32>>>
637
+ ! CHECK: %[[VAL_13:.*]] = fir.convert %[[VAL_12]] : (!fir.ref<!fir.box<!fir.ptr<f32>>>) -> !fir.ref<!fir.box<none>>
638
+ ! CHECK: %[[VAL_14:.*]] = fir.convert %[[VAL_8]] : (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>
639
+ ! CHECK: %[[VAL_15:.*]] = fir.call @_FortranAPointerDeallocate(%[[VAL_13]], %false_0, %[[VAL_7]], %[[VAL_14]], %[[LINE_1]]) fastmath<contract> : (!fir.ref<!fir.box<none>>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32
625
640
deallocate (p0_1(5 )% p)
626
641
627
- ! CHECK: %[[fld:.*]] = fir.field_index p
628
- ! CHECK: %[[coor:.*]] = fir.coordinate_of %[[p1_0]], %[[fld]]
629
- ! CHECK: fir.store {{.*}} to %[[coor]]
642
+ ! CHECK: %false_1 = arith.constant false
643
+ ! CHECK: %[[VAL_16:.*]] = fir.absent !fir.box<none>
644
+ ! CHECK: %[[VAL_17:.*]] = fir.address_of(@_QQclX{{.*}}) : !fir.ref<!fir.char<1,77>>
645
+ ! CHECK: %[[LINE_2:.*]] = arith.constant {{.*}} : i32
646
+ ! CHECK: %[[VAL_18:.*]] = fir.field_index p, !fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>
647
+ ! CHECK: %[[VAL_19:.*]] = fir.coordinate_of %arg1, %[[VAL_18]] : (!fir.ref<!fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>>, !fir.field) -> !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
648
+ ! CHECK: %[[VAL_20:.*]] = fir.convert %[[VAL_19]] : (!fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) -> !fir.ref<!fir.box<none>>
649
+ ! CHECK: %[[VAL_21:.*]] = fir.convert %[[VAL_17]] : (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>
650
+ ! CHECK: %[[VAL_22:.*]] = fir.call @_FortranAPointerDeallocate(%[[VAL_20]], %false_1, %[[VAL_16]], %[[VAL_21]], %[[LINE_2]]) fastmath<contract> : (!fir.ref<!fir.box<none>>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32
630
651
deallocate (p1_0% p)
631
652
632
- ! CHECK-DAG: %[[coor0:.*]] = fir.coordinate_of %[[p1_1]], %{{.*}}
633
- ! CHECK-DAG: %[[fld:.*]] = fir.field_index p
634
- ! CHECK: %[[coor:.*]] = fir.coordinate_of %[[coor0]], %[[fld]]
635
- ! CHECK: fir.store {{.*}} to %[[coor]]
653
+ ! CHECK: %false_2 = arith.constant false
654
+ ! CHECK: %[[VAL_23:.*]] = fir.absent !fir.box<none>
655
+ ! CHECK: %[[VAL_24:.*]] = fir.address_of(@_QQclX{{.*}}) : !fir.ref<!fir.char<1,77>>
656
+ ! CHECK: %[[LINE_3:.*]] = arith.constant {{.*}} : i32
657
+ ! CHECK: %[[CON_5A:.*]] = arith.constant 5 : i64
658
+ ! CHECK: %[[CON_1A:.*]] = arith.constant 1 : i64
659
+ ! CHECK: %[[VAL_25:.*]] = arith.subi %[[CON_5A]], %[[CON_1A]] : i64
660
+ ! CHECK: %[[VAL_26:.*]] = fir.coordinate_of %arg3, %[[VAL_25]] : (!fir.ref<!fir.array<100x!fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>>>, i64) -> !fir.ref<!fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>>
661
+ ! CHECK: %[[VAL_27:.*]] = fir.field_index p, !fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>
662
+ ! CHECK: %[[VAL_28:.*]] = fir.coordinate_of %[[VAL_26]], %[[VAL_27]] : (!fir.ref<!fir.type<_QMpcompTreal_p1{p:!fir.box<!fir.ptr<!fir.array<?xf32>>>}>>, !fir.field) -> !fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>
663
+ ! CHECK: %[[VAL_29:.*]] = fir.convert %[[VAL_28]] : (!fir.ref<!fir.box<!fir.ptr<!fir.array<?xf32>>>>) -> !fir.ref<!fir.box<none>>
664
+ ! CHECK: %[[VAL_30:.*]] = fir.convert %[[VAL_24]] : (!fir.ref<!fir.char<1,{{.*}}>>) -> !fir.ref<i8>
665
+ ! CHECK: %[[VAL_31:.*]] = fir.call @_FortranAPointerDeallocate(%[[VAL_29]], %false_2, %[[VAL_23]], %[[VAL_30]], %[[LINE_3]]) fastmath<contract> : (!fir.ref<!fir.box<none>>, i1, !fir.box<none>, !fir.ref<i8>, i32) -> i32
636
666
deallocate (p1_1(5 )% p)
637
667
end subroutine
638
668
0 commit comments