[llvm] [llvm-mc] Propagate invalid-token errors from byteArrayFromString (PR #217265)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 03:25:44 PDT 2026
https://github.com/StevenYangCC created https://github.com/llvm/llvm-project/pull/217265
byteArrayFromString always returned false after skipping an invalid non-hex token, so llvm-mc exited 0 despite printing errors. Track whether an error occurred so the process status matches.
>From 7b052baaa436714a2f3df923d38998356dc0307c Mon Sep 17 00:00:00 2001
From: "chengcang.yang" <yangchengcang at gmail.com>
Date: Wed, 19 Aug 2026 18:23:24 +0800
Subject: [PATCH] [llvm-mc] Propagate invalid-token errors from
byteArrayFromString
byteArrayFromString always returned false after skipping an invalid
non-hex token, so llvm-mc exited 0 despite printing errors. Track
whether an error occurred so the process status matches.
---
llvm/tools/llvm-mc/Disassembler.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/llvm/tools/llvm-mc/Disassembler.cpp b/llvm/tools/llvm-mc/Disassembler.cpp
index ba6e79d0b7016..2a97ef1ae4db4 100644
--- a/llvm/tools/llvm-mc/Disassembler.cpp
+++ b/llvm/tools/llvm-mc/Disassembler.cpp
@@ -116,6 +116,7 @@ static bool SkipToToken(StringRef &Str) {
static bool byteArrayFromString(ByteArrayTy &ByteArray, StringRef &Str,
SourceMgr &SM, bool HexBytes) {
+ bool ErrorOccurred = false;
while (SkipToToken(Str)) {
// Handled by higher level
if (Str[0] == '[' || Str[0] == ']')
@@ -151,6 +152,7 @@ static bool byteArrayFromString(ByteArrayTy &ByteArray, StringRef &Str,
Str = Str.substr(Str.find('\n'));
ByteArray.first.clear();
ByteArray.second.clear();
+ ErrorOccurred = true;
continue;
}
@@ -159,7 +161,7 @@ static bool byteArrayFromString(ByteArrayTy &ByteArray, StringRef &Str,
Str = Str.substr(Next);
}
- return false;
+ return ErrorOccurred;
}
int Disassembler::disassemble(const Target &T, MCSubtargetInfo &STI,
More information about the llvm-commits
mailing list