Author: A. Wilcox This isn't the proper fix, but debugging the LLVM formatter is a bit above my paygrade at the moment. The issue shows up in the DWARF X86 test on ppc and armv7: error: Simplified template DW_AT_name could not be reconstituted: original: f3 reconstituted: f3 With this patch, this error does not occur. Debugging shows that the llvm::format overload called in the error case is , so I think it is having an issue converting a 64-bit value on platforms where char is default-unsigned. (pmmx does not show this issue, and has signed char.) --- llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp.old 2022-06-22 16:46:24.000000000 +0000 +++ llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp 2022-11-28 10:32:05.573627744 +0000 @@ -506,7 +506,7 @@ OS << (char)Val; OS << "'"; } else if (Val < 256) - OS << to_string(llvm::format("'\\x%02x'", Val)); + OS << to_string(llvm::format("'\\x%02x'", (unsigned char)Val)); else if (Val <= 0xFFFF) OS << to_string(llvm::format("'\\u%04x'", Val)); else