[llvm] Add checksum option for create file (PR #162592)
Orlando Cazalet-Hyams via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 16 02:39:32 PDT 2025
================
@@ -1095,6 +1095,38 @@ LLVMDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
StringRef(Directory, DirectoryLen)));
}
+static llvm::DIFile::ChecksumKind
+map_from_llvmChecksumKind(LLVMChecksumKind CSKind) {
+ switch (CSKind) {
+ case LLVMChecksumKind::CSK_MD5:
+ return llvm::DIFile::CSK_MD5;
+ case LLVMChecksumKind::CSK_SHA1:
+ return llvm::DIFile::CSK_SHA1;
+ case LLVMChecksumKind::CSK_SHA256:
+ return llvm::DIFile::CSK_SHA256;
+ }
+ llvm_unreachable("Unhandled Checksum Kind");
+}
+
+LLVMMetadataRef LLVMDIBuilderCreateFileWithCheckSum(
+ LLVMDIBuilderRef Builder, const char *Filename, size_t FilenameLen,
+ const char *Directory, size_t DirectoryLen, LLVMChecksumKind ChecksumKind,
+ const char *Checksum, size_t ChecksumLen, const char *Source,
+ size_t SourceLen) {
+ StringRef ChkSum = StringRef(Checksum, ChecksumLen);
+ std::optional<llvm::DIFile::ChecksumInfo<StringRef>> CSInfo;
----------------
OCHyams wrote:
```diff
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp
index 5d45bb542aab..e9cfc63132a7 100644
--- a/llvm/lib/IR/DebugInfo.cpp
+++ b/llvm/lib/IR/DebugInfo.cpp
@@ -1114,9 +1114,8 @@ LLVMMetadataRef LLVMDIBuilderCreateFileWithChecksum(
const char *Checksum, size_t ChecksumLen, const char *Source,
size_t SourceLen) {
StringRef ChkSum = StringRef(Checksum, ChecksumLen);
- std::optional<llvm::DIFile::ChecksumInfo<StringRef>> CSInfo;
auto CSK = map_from_llvmChecksumKind(ChecksumKind);
- CSInfo.emplace(CSK, ChkSum);
+ llvm::DIFile::ChecksumInfo<StringRef> CSInfo(CSK, ChkSum);
std::optional<StringRef> Src;
if (SourceLen > 0)
Src = StringRef(Source, SourceLen);
```
No problem, can you give this a try? It works for me.
https://github.com/llvm/llvm-project/pull/162592
More information about the llvm-commits
mailing list