[llvm] [llvm][llvm-dis] Fix 'llvm-dis' with '--materialize-metadata --show-annotations' crashes (PR #164819)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 24 06:50:29 PDT 2025
https://github.com/t-baydyusenov updated https://github.com/llvm/llvm-project/pull/164819
>From 151389eac3b2dc9e78ec8e89bb3f510a543a57a9 Mon Sep 17 00:00:00 2001
From: "t.baydyusenov" <t.baydyusenov at syntacore.com>
Date: Tue, 21 Oct 2025 15:24:53 +0000
Subject: [PATCH] [llvm][llvm-dis] Fix 'llvm-dis' with '--materialize-metadata
--show-annotations' crashes
---
llvm/lib/IR/AsmWriter.cpp | 4 ++--
llvm/test/Assembler/metadata-annotations.ll | 9 +++++++++
2 files changed, 11 insertions(+), 2 deletions(-)
create mode 100644 llvm/test/Assembler/metadata-annotations.ll
diff --git a/llvm/lib/IR/AsmWriter.cpp b/llvm/lib/IR/AsmWriter.cpp
index 488b078ab6caf..1096e57632d97 100644
--- a/llvm/lib/IR/AsmWriter.cpp
+++ b/llvm/lib/IR/AsmWriter.cpp
@@ -4082,10 +4082,10 @@ void AssemblyWriter::printTypeIdentities() {
/// printFunction - Print all aspects of a function.
void AssemblyWriter::printFunction(const Function *F) {
- if (AnnotationWriter) AnnotationWriter->emitFunctionAnnot(F, Out);
-
if (F->isMaterializable())
Out << "; Materializable\n";
+ else if (AnnotationWriter)
+ AnnotationWriter->emitFunctionAnnot(F, Out);
const AttributeList &Attrs = F->getAttributes();
if (Attrs.hasFnAttrs()) {
diff --git a/llvm/test/Assembler/metadata-annotations.ll b/llvm/test/Assembler/metadata-annotations.ll
new file mode 100644
index 0000000000000..4fd471338cd0a
--- /dev/null
+++ b/llvm/test/Assembler/metadata-annotations.ll
@@ -0,0 +1,9 @@
+; RUN: llvm-as < %s | llvm-dis --materialize-metadata --show-annotations | FileCheck %s
+
+; CHECK: ; Materializable
+; CHECK-NEXT: define dso_local i32 @test() {}
+define dso_local i32 @test() {
+entry:
+ ret i32 0
+}
+
More information about the llvm-commits
mailing list