[llvm] 25b00c0 - AArch64: Fix asserting on unexpected triples (#147880)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 14 20:47:58 PDT 2025


Author: Matt Arsenault
Date: 2025-07-15T12:47:55+09:00
New Revision: 25b00c033c3cdd1a5c67ecc32b1dd13e3cd2df61

URL: https://github.com/llvm/llvm-project/commit/25b00c033c3cdd1a5c67ecc32b1dd13e3cd2df61
DIFF: https://github.com/llvm/llvm-project/commit/25b00c033c3cdd1a5c67ecc32b1dd13e3cd2df61.diff

LOG: AArch64: Fix asserting on unexpected triples (#147880)

Added: 
    llvm/test/CodeGen/AArch64/unsupported-object-format-err.ll

Modified: 
    llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
index f918e3cbc7b80..5c8f57664a2cc 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
@@ -356,7 +356,7 @@ static MCAsmInfo *createAArch64MCAsmInfo(const MCRegisterInfo &MRI,
   else if (TheTriple.isOSBinFormatCOFF())
     MAI = new AArch64MCAsmInfoGNUCOFF();
   else
-    llvm_unreachable("Invalid target"); // FIXME: This is not unreachable
+    reportFatalUsageError("unsupported object format");
 
   // Initial state of the frame pointer is SP.
   unsigned Reg = MRI.getDwarfRegNum(AArch64::SP, true);

diff  --git a/llvm/test/CodeGen/AArch64/unsupported-object-format-err.ll b/llvm/test/CodeGen/AArch64/unsupported-object-format-err.ll
new file mode 100644
index 0000000000000..740bde5e43c15
--- /dev/null
+++ b/llvm/test/CodeGen/AArch64/unsupported-object-format-err.ll
@@ -0,0 +1,10 @@
+; RUN: not llc -mtriple=aarch64-pc-unknown-xcoff -filetype=null %s 2>&1 | FileCheck %s
+; RUN: not llc -mtriple=aarch64-pc-unknown-goff -filetype=null %s 2>&1 | FileCheck %s
+
+; Make sure there is no crash or assert with unexpected object
+; formats.
+
+; CHECK: LLVM ERROR: unsupported object format
+define void @foo() {
+  ret void
+}


        


More information about the llvm-commits mailing list