From 151389eac3b2dc9e78ec8e89bb3f510a543a57a9 Mon Sep 17 00:00:00 2001 From: "t.baydyusenov" 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 +} +