[llvm] AsmPrinter: Do not use report_fatal_error for unknown appending linkage (PR #145269)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 22 22:52:08 PDT 2025


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/145269

None

>From 3c86b6559716d0ed9cb83f70dd4925b53f9e3911 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Mon, 23 Jun 2025 14:51:22 +0900
Subject: [PATCH] AsmPrinter: Do not use report_fatal_error for unknown
 appending linkage

---
 llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 5 ++++-
 llvm/test/CodeGen/X86/AppendingLinkage.ll  | 9 ++++++---
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index 403963f33b65c..12125392159b5 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -3207,7 +3207,10 @@ bool AsmPrinter::emitSpecialLLVMGlobal(const GlobalVariable *GV) {
     return true;
   }
 
-  report_fatal_error("unknown special variable with appending linkage");
+  GV->getContext().emitError(
+      "unknown special variable with appending linkage: " +
+      GV->getNameOrAsOperand());
+  return true;
 }
 
 /// EmitLLVMUsedList - For targets that define a MAI::UsedDirective, mark each
diff --git a/llvm/test/CodeGen/X86/AppendingLinkage.ll b/llvm/test/CodeGen/X86/AppendingLinkage.ll
index ace5d192b7ea7..77d1ce4a21481 100644
--- a/llvm/test/CodeGen/X86/AppendingLinkage.ll
+++ b/llvm/test/CodeGen/X86/AppendingLinkage.ll
@@ -1,4 +1,7 @@
-; RUN: not --crash llc < %s -mtriple=i686-- 2>&1 | FileCheck %s
+; RUN: not llc < %s -mtriple=i686-- 2>&1 | FileCheck %s
 
-; CHECK: unknown special variable with appending linkage
- at foo = appending constant [1 x i32 ]zeroinitializer
+; CHECK: error: unknown special variable with appending linkage: foo
+ at foo = appending constant [1 x i32 ] zeroinitializer
+
+; CHECK: error: unknown special variable with appending linkage: @0
+ at 0 = appending constant [1 x i32 ] zeroinitializer



More information about the llvm-commits mailing list