[flang-commits] [flang] [flang][debuginfo] Emit DW_AT_type for DW_TAG_string_type DIEs [3/3] (PR #231960)

Abid Qadeer via flang-commits flang-commits at lists.llvm.org
Wed Oct 21 02:25:08 PDT 2026


================
@@ -704,6 +704,10 @@ mlir::LLVM::DITypeAttr DebugTypeGenerator::convertCharacterType(
     };
     addOp(llvm::dwarf::DW_OP_push_object_address, {});
     addOp(llvm::dwarf::DW_OP_plus_uconst, {lenOffset});
+    addOp(llvm::dwarf::DW_OP_deref, {});
+    addOp(llvm::dwarf::DW_OP_constu, {charTy.getFKind()});
+    addOp(llvm::dwarf::DW_OP_div, {});
+    addOp(llvm::dwarf::DW_OP_stack_value, {});
----------------
abidh wrote:

I think that these should be made conditional so that default case is small. Something like
uint64_t charBytes = kindMapping.getCharacterBitsize(charTy.getFKind()) / 8;
if (charBytes != 1) {
  addOp(llvm::dwarf::DW_OP_deref, {});
  addOp(llvm::dwarf::DW_OP_constu, {charBytes});
  addOp(llvm::dwarf::DW_OP_div, {});
  addOp(llvm::dwarf::DW_OP_stack_value, {});
}

https://github.com/llvm/llvm-project/pull/231960


More information about the flang-commits mailing list