|
| 1 | +// RUN: fir-opt --add-debug-info --mlir-print-debuginfo %s | FileCheck %s |
| 2 | + |
| 3 | +module attributes {dlti.dl_spec = #dlti.dl_spec<>} { |
| 4 | + fir.global @_QMhelperEpar : !fir.box<!fir.ptr<!fir.array<?x?xf32>>> { |
| 5 | + %0 = fir.zero_bits !fir.ptr<!fir.array<?x?xf32>> |
| 6 | + %c0 = arith.constant 0 : index |
| 7 | + %1 = fir.shape %c0, %c0 : (index, index) -> !fir.shape<2> |
| 8 | + %2 = fir.embox %0(%1) : (!fir.ptr<!fir.array<?x?xf32>>, !fir.shape<2>) -> !fir.box<!fir.ptr<!fir.array<?x?xf32>>> |
| 9 | + fir.has_value %2 : !fir.box<!fir.ptr<!fir.array<?x?xf32>>> |
| 10 | + } loc(#loc1) |
| 11 | + fir.global @_QMhelperEpar2 : !fir.box<!fir.ptr<!fir.array<?xi32>>> { |
| 12 | + %0 = fir.zero_bits !fir.ptr<!fir.array<?xi32>> |
| 13 | + %c0 = arith.constant 0 : index |
| 14 | + %1 = fir.shape %c0 : (index) -> !fir.shape<1> |
| 15 | + %2 = fir.embox %0(%1) : (!fir.ptr<!fir.array<?xi32>>, !fir.shape<1>) -> !fir.box<!fir.ptr<!fir.array<?xi32>>> |
| 16 | + fir.has_value %2 : !fir.box<!fir.ptr<!fir.array<?xi32>>> |
| 17 | + } loc(#loc2) |
| 18 | + fir.global @_QMhelperEpsc : !fir.box<!fir.ptr<i32>> { |
| 19 | + %0 = fir.zero_bits !fir.ptr<i32> |
| 20 | + %1 = fir.embox %0 : (!fir.ptr<i32>) -> !fir.box<!fir.ptr<i32>> |
| 21 | + fir.has_value %1 : !fir.box<!fir.ptr<i32>> |
| 22 | + } loc(#loc3) |
| 23 | + fir.global @_QMmEpstr : !fir.box<!fir.ptr<!fir.char<1,16>>> { |
| 24 | + %0 = fir.zero_bits !fir.ptr<!fir.char<1,16>> |
| 25 | + %1 = fir.embox %0 : (!fir.ptr<!fir.char<1,16>>) -> !fir.box<!fir.ptr<!fir.char<1,16>>> |
| 26 | + fir.has_value %1 : !fir.box<!fir.ptr<!fir.char<1,16>>> |
| 27 | + } loc(#loc4) |
| 28 | +} |
| 29 | +#loc1 = loc("test.f90":5:1) |
| 30 | +#loc2 = loc("test.f90":6:1) |
| 31 | +#loc3 = loc("test.f90":7:1) |
| 32 | +#loc4 = loc("test.f90":8:1) |
| 33 | + |
| 34 | +// CHECK-DAG: #[[INT_TY:.*]] = #llvm.di_basic_type<tag = DW_TAG_base_type, name = "integer"{{.*}}> |
| 35 | +// CHECK-DAG: #[[ARR1_TY:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type{{.*}}elements = #llvm.di_subrange<lowerBound = #llvm.di_expression{{.*}}, upperBound = #llvm.di_expression{{.*}}>, #llvm.di_subrange<lowerBound = #llvm.di_expression{{.*}}, upperBound = #llvm.di_expression{{.*}}>, dataLocation = {{.*}}, associated = <[DW_OP_push_object_address, DW_OP_deref, DW_OP_lit0, DW_OP_ne]>> |
| 36 | +// CHECK-DAG: #[[ARR2_TY:.*]] = #llvm.di_composite_type<tag = DW_TAG_array_type{{.*}}elements = #llvm.di_subrange<lowerBound = #llvm.di_expression{{.*}}, upperBound = #llvm.di_expression{{.*}}>, dataLocation = {{.*}}, associated = <[DW_OP_push_object_address, DW_OP_deref, DW_OP_lit0, DW_OP_ne]>> |
| 37 | +// CHECK-DAG: #[[PTR_TY:.*]] = #llvm.di_derived_type<tag = DW_TAG_pointer_type{{.*}}baseType = #[[INT_TY]]{{.*}}> |
| 38 | +// CHECK-DAG: #llvm.di_global_variable<{{.*}}name = "par"{{.*}}type = #[[ARR1_TY]]{{.*}}> |
| 39 | +// CHECK-DAG: #llvm.di_global_variable<{{.*}}name = "par2"{{.*}}type = #[[ARR2_TY]]{{.*}}> |
| 40 | +// CHECK-DAG: #llvm.di_global_variable<{{.*}}name = "psc"{{.*}}type = #[[PTR_TY]]{{.*}}> |
0 commit comments