diff --git a/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp b/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp index 227dc978897de..e5b4050dfb242 100644 --- a/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp +++ b/flang/lib/Optimizer/Transforms/DebugTypeGenerator.cpp @@ -45,9 +45,13 @@ DebugTypeGenerator::convertType(mlir::Type Ty, mlir::LLVM::DIFileAttr fileAttr, if (Ty.isInteger()) { return genBasicType(context, mlir::StringAttr::get(context, "integer"), Ty.getIntOrFloatBitWidth(), llvm::dwarf::DW_ATE_signed); - } else if (mlir::isa(Ty) || mlir::isa(Ty)) { + } else if (mlir::isa(Ty)) { return genBasicType(context, mlir::StringAttr::get(context, "real"), Ty.getIntOrFloatBitWidth(), llvm::dwarf::DW_ATE_float); + } else if (auto realTy = mlir::dyn_cast_or_null(Ty)) { + return genBasicType(context, mlir::StringAttr::get(context, "real"), + kindMapping.getRealBitsize(realTy.getFKind()), + llvm::dwarf::DW_ATE_float); } else if (auto logTy = mlir::dyn_cast_or_null(Ty)) { return genBasicType(context, mlir::StringAttr::get(context, logTy.getMnemonic()),