diff options
| author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2025-06-23 14:59:07 +0900 |
|---|---|---|
| committer | Matt Arsenault <arsenm2@gmail.com> | 2025-06-23 15:01:04 +0900 |
| commit | e93873af872cc817dc95f1e02552834560e2052e (patch) | |
| tree | 112fd9c48e26e23c15bf97478ad1a5c3c7a2d1e8 | |
| parent | da0c21bd4b62ee2a4a2709f49ea8b19538d1588a (diff) | |
AsmPrinter: Emit context error for protected aliasesusers/arsenm/asm-printer/no-report-fatal-error-emit-function-entry-label
| -rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp | 9 | ||||
| -rw-r--r-- | llvm/test/CodeGen/X86/equiv_with_fndef.ll | 11 |
2 files changed, 15 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp index 403963f33b65..4ae92ad05ffa 100644 --- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp @@ -1084,9 +1084,12 @@ void AsmPrinter::emitFunctionEntryLabel() { // The function label could have already been emitted if two symbols end up // conflicting due to asm renaming. Detect this and emit an error. - if (CurrentFnSym->isVariable()) - report_fatal_error("'" + Twine(CurrentFnSym->getName()) + - "' is a protected alias"); + if (CurrentFnSym->isVariable()) { + LLVMContext &Ctx = MF->getFunction().getContext(); + Ctx.emitError("'" + Twine(CurrentFnSym->getName()) + + "' is a protected alias"); + return; + } OutStreamer->emitLabel(CurrentFnSym); diff --git a/llvm/test/CodeGen/X86/equiv_with_fndef.ll b/llvm/test/CodeGen/X86/equiv_with_fndef.ll index 3da0aa60250c..e1640def9711 100644 --- a/llvm/test/CodeGen/X86/equiv_with_fndef.ll +++ b/llvm/test/CodeGen/X86/equiv_with_fndef.ll @@ -1,10 +1,17 @@ -; RUN: not --crash llc < %s 2>&1 | FileCheck %s +; RUN: not llc < %s 2> %t.err | FileCheck %s +; RUN: FileCheck -check-prefix=ERR %s < %t.err target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" module asm ".equiv pselect, __pselect" +; ERR: error: 'pselect' is a protected alias + +; CHECK: .globl pselect # -- Begin function pselect +; CHECK: .type pselect,@function +; CHECK: .cfi_startproc # @pselect +; CHECK: retq +; CHECK: .size pselect, .Lfunc_end0-pselect define void @pselect() { ret void } -; CHECK: 'pselect' is a protected alias |
