From ac97092ffda97b0291c21b5ea31b0a62df8ab4e6 Mon Sep 17 00:00:00 2001 From: Michael Buch Date: Thu, 6 Feb 2025 10:30:55 +0000 Subject: [PATCH] [llvm][AsmWriter] Don't skip zero-valued DwarfEnum MDField when ShouldSkipZero is not set I ran into this whil working on a different patch where I'm emitting a zero-valued DWARF enum field which shouldn't be skipped. This patch checks the (currently unused) `ShouldSkipZero` before deciding to skip printing this field. Based on git history this seems like an oversight from the initial refactor that introduced this. We have a similar check in `printInt`. Wasn't sure how to best test this, but tests in an upcoming patch rely on this functionality. --- llvm/lib/IR/AsmWriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp index c8ed4e19f1b61..57e9cccdc0fb6 100644 --- a/llvm/lib/IR/AsmWriter.cpp +++ b/llvm/lib/IR/AsmWriter.cpp @@ -2004,7 +2004,7 @@ void MDFieldPrinter::printNameTableKind(StringRef Name, template void MDFieldPrinter::printDwarfEnum(StringRef Name, IntTy Value, Stringifier toString, bool ShouldSkipZero) { - if (!Value) + if (ShouldSkipZero && !Value) return; Out << FS << Name << ": ";