diff --git a/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp b/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp index a7e47239036ba..00fdb5a4516bd 100644 --- a/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp +++ b/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp @@ -682,10 +682,11 @@ mlir::LLVM::DITypeAttr DebugTypeGenerator::convertPointerLikeType( static mlir::StringAttr getBasicTypeName(mlir::MLIRContext *context, llvm::StringRef baseName, unsigned bitSize) { - std::string name(baseName.str()); + std::ostringstream oss; + oss << baseName.str(); if (bitSize != 32) - name += "*" + std::to_string(bitSize / 8); - return mlir::StringAttr::get(context, name); + oss << "(kind=" << (bitSize / 8) << ")"; + return mlir::StringAttr::get(context, oss.str()); } mlir::LLVM::DITypeAttr diff --git a/flang/test/Integration/debug-complex-1.f90 b/flang/test/Integration/debug-complex-1.f90 index 48ea0295eb250..1d70140a202d7 100644 --- a/flang/test/Integration/debug-complex-1.f90 +++ b/flang/test/Integration/debug-complex-1.f90 @@ -17,8 +17,8 @@ function fn1(a, b) result (c) end program ! CHECK-DAG: ![[C4:.*]] = !DIBasicType(name: "complex", size: 64, encoding: DW_ATE_complex_float) -! CHECK-DAG: ![[C8:.*]] = !DIBasicType(name: "complex*8", size: 128, encoding: DW_ATE_complex_float) -! CHECK-DAG: ![[C16:.*]] = !DIBasicType(name: "complex*16", size: 256, encoding: DW_ATE_complex_float) +! CHECK-DAG: ![[C8:.*]] = !DIBasicType(name: "complex(kind=8)", size: 128, encoding: DW_ATE_complex_float) +! CHECK-DAG: ![[C16:.*]] = !DIBasicType(name: "complex(kind=16)", size: 256, encoding: DW_ATE_complex_float) ! CHECK-DAG: !DILocalVariable(name: "c4"{{.*}}type: ![[C4]]) ! CHECK-DAG: !DILocalVariable(name: "c8"{{.*}}type: ![[C8]]) ! CHECK-DAG: !DILocalVariable(name: "r"{{.*}}type: ![[C16]]) diff --git a/flang/test/Integration/debug-local-var-2.f90 b/flang/test/Integration/debug-local-var-2.f90 index 93659a56c7275..e95263e6841ad 100644 --- a/flang/test/Integration/debug-local-var-2.f90 +++ b/flang/test/Integration/debug-local-var-2.f90 @@ -40,11 +40,11 @@ program mn ! BOTH-DAG: ![[MAIN:.*]] = distinct !DISubprogram(name: "MN", {{.*}}) ! BOTH-DAG: ![[TYI32:.*]] = !DIBasicType(name: "integer", size: 32, encoding: DW_ATE_signed) -! BOTH-DAG: ![[TYI64:.*]] = !DIBasicType(name: "integer*8", size: 64, encoding: DW_ATE_signed) -! BOTH-DAG: ![[TYL8:.*]] = !DIBasicType(name: "logical*1", size: 8, encoding: DW_ATE_boolean) +! BOTH-DAG: ![[TYI64:.*]] = !DIBasicType(name: "integer(kind=8)", size: 64, encoding: DW_ATE_signed) +! BOTH-DAG: ![[TYL8:.*]] = !DIBasicType(name: "logical(kind=1)", size: 8, encoding: DW_ATE_boolean) ! BOTH-DAG: ![[TYL32:.*]] = !DIBasicType(name: "logical", size: 32, encoding: DW_ATE_boolean) ! BOTH-DAG: ![[TYR32:.*]] = !DIBasicType(name: "real", size: 32, encoding: DW_ATE_float) -! BOTH-DAG: ![[TYR64:.*]] = !DIBasicType(name: "real*8", size: 64, encoding: DW_ATE_float) +! BOTH-DAG: ![[TYR64:.*]] = !DIBasicType(name: "real(kind=8)", size: 64, encoding: DW_ATE_float) ! BOTH-DAG: ![[I4]] = !DILocalVariable(name: "i4", scope: ![[MAIN]], file: !{{.*}}, line: [[@LINE+6]], type: ![[TYI32]]) ! BOTH-DAG: ![[I8]] = !DILocalVariable(name: "i8", scope: ![[MAIN]], file: !{{.*}}, line: [[@LINE+6]], type: ![[TYI64]]) diff --git a/flang/test/Transforms/debug-complex-1.fir b/flang/test/Transforms/debug-complex-1.fir index 7a288fec69be3..6e2c6c5bdb354 100644 --- a/flang/test/Transforms/debug-complex-1.fir +++ b/flang/test/Transforms/debug-complex-1.fir @@ -26,9 +26,9 @@ module { #loc3 = loc("./simple.f90":8:1) #loc4 = loc("./simple.f90":11:1) -// CHECK-DAG: #[[CMPX8:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[CMPX8:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[CMPX4:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[CMPX16:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[CMPX16:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[TY1:.*]] = #llvm.di_subroutine_type<{{.*}}types = #[[CMPX8]], #[[CMPX4]]> // CHECK-DAG: #[[TY2:.*]] = #llvm.di_subroutine_type<{{.*}}types = #[[CMPX16]], #[[CMPX4]]> diff --git a/flang/test/Transforms/debug-derived-type-1.fir b/flang/test/Transforms/debug-derived-type-1.fir index 672b6cf2819d2..22832b67742c8 100644 --- a/flang/test/Transforms/debug-derived-type-1.fir +++ b/flang/test/Transforms/debug-derived-type-1.fir @@ -45,12 +45,12 @@ module attributes {dlti.dl_spec = #dlti.dl_spec<#dlti.dl_entry, d // CHECK-DAG: #[[INT_TY:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[INT8_TY:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[INT8_TY:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[REAL4_TY:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[CMX8_TY:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[CMX_ARR:.*]] = #llvm.di_composite_type -// CHECK-DAG: #[[LOG_TY:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[REAL8_TY:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[LOG_TY:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[REAL8_TY:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[STR_TY:.*]] = #llvm.di_string_type // CHECK-DAG: #[[MOD:.*]] = #llvm.di_module<{{.*}}name = "m_employee"{{.*}}> // CHECK-DAG: #[[MOD1:.*]] = #llvm.di_module<{{.*}}name = "t1"{{.*}}> diff --git a/flang/test/Transforms/debug-fn-info.fir b/flang/test/Transforms/debug-fn-info.fir index d82cef1acc423..e42beb1f748f1 100644 --- a/flang/test/Transforms/debug-fn-info.fir +++ b/flang/test/Transforms/debug-fn-info.fir @@ -64,10 +64,10 @@ module { #loc4 = loc("test2.f90":53:22) -// CHECK-DAG: #[[INT8:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[INT8:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[INT4:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[REAL8:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[LOG1:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[REAL8:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[LOG1:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[REAL4:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[LOG4:.*]] = #llvm.di_basic_type // CHECK: #[[TY0:.*]] = #llvm.di_subroutine_type diff --git a/flang/test/Transforms/debug-local-var.fir b/flang/test/Transforms/debug-local-var.fir index 466f79c6ed879..d39017e6dd62a 100644 --- a/flang/test/Transforms/debug-local-var.fir +++ b/flang/test/Transforms/debug-local-var.fir @@ -71,10 +71,10 @@ module { #loc15 = loc("test.f90":21:24) #loc16 = loc("test.f90":22:5) -// CHECK-DAG: #[[INT8:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[INT8:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[INT4:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[REAL8:.*]] = #llvm.di_basic_type -// CHECK-DAG: #[[LOG1:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[REAL8:.*]] = #llvm.di_basic_type +// CHECK-DAG: #[[LOG1:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[REAL4:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[LOG4:.*]] = #llvm.di_basic_type // CHECK-DAG: #[[MAIN:.*]] = #llvm.di_subprogram<{{.*}}name = "mn"{{.*}}> diff --git a/flang/test/Transforms/debug-ref-type.fir b/flang/test/Transforms/debug-ref-type.fir index 2164a40c7c111..daffa293ba2e3 100644 --- a/flang/test/Transforms/debug-ref-type.fir +++ b/flang/test/Transforms/debug-ref-type.fir @@ -5,6 +5,6 @@ module { } #loc1 = loc("test.f90":5:1) -// CHECK: #[[INT8_TY:.*]] = #llvm.di_basic_type +// CHECK: #[[INT8_TY:.*]] = #llvm.di_basic_type // CHECK: #[[REF_TY:.*]] = #llvm.di_derived_type // CHECK: #llvm.di_subroutine_type<{{.*}}types = #[[REF_TY]], #[[INT8_TY]]> diff --git a/flang/test/Transforms/debug-tuple-type.fir b/flang/test/Transforms/debug-tuple-type.fir index b865d492b6696..73a07333b3aef 100644 --- a/flang/test/Transforms/debug-tuple-type.fir +++ b/flang/test/Transforms/debug-tuple-type.fir @@ -5,7 +5,7 @@ module { func.func private @_FortranAioOutputDerivedType(!fir.ref>) } -// CHECK: #[[F64:.*]] = #llvm.di_basic_type +// CHECK: #[[F64:.*]] = #llvm.di_basic_type // CHECK: #[[CU:.*]] = #llvm.di_compile_unit<{{.*}}> // CHECK: #[[DTY1:.*]] = #llvm.di_derived_type // CHECK: #[[DTY2:.*]] = #llvm.di_derived_type diff --git a/flang/test/Transforms/debug-vector-type.fir b/flang/test/Transforms/debug-vector-type.fir index cfb97ea46ba61..9e41d90f407b9 100644 --- a/flang/test/Transforms/debug-vector-type.fir +++ b/flang/test/Transforms/debug-vector-type.fir @@ -2,22 +2,22 @@ module { func.func private @foo1(%arg0: !fir.vector<20:bf16>) -// CHECK-DAG: #[[F16:.*]] = #llvm.di_basic_type -// CHECK-DAG: #llvm.di_composite_type> +// CHECK-DAG: #[[F16:.*]] = #llvm.di_basic_type +// CHECK-DAG: #llvm.di_composite_type> func.func private @foo2(%arg0: !fir.vector<30:f32>) // CHECK-DAG: #[[F32:.*]] = #llvm.di_basic_type // CHECK-DAG: #llvm.di_composite_type> func.func private @foo3(%arg0: !fir.vector<10:f64>) -// CHECK-DAG: #[[F64:.*]] = #llvm.di_basic_type -// CHECK-DAG: #llvm.di_composite_type> +// CHECK-DAG: #[[F64:.*]] = #llvm.di_basic_type +// CHECK-DAG: #llvm.di_composite_type> func.func private @foo4(%arg0: !fir.vector<5:i32>) // CHECK-DAG: #[[I32:.*]] = #llvm.di_basic_type // CHECK-DAG: #llvm.di_composite_type> func.func private @foo5(%arg0: !fir.vector<2:i64>) -// CHECK-DAG: #[[I64:.*]] = #llvm.di_basic_type -// CHECK-DAG: #llvm.di_composite_type> +// CHECK-DAG: #[[I64:.*]] = #llvm.di_basic_type +// CHECK-DAG: #llvm.di_composite_type> }