[llvm] [llvm-mc] Propagate invalid-token errors from byteArrayFromString (PR #217533)

via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 19 23:02:10 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-llvm-mc

Author: StevenYangCC

<details>
<summary>Changes</summary>

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.

---
Full diff: https://github.com/llvm/llvm-project/pull/217533.diff


1 Files Affected:

- (modified) llvm/tools/llvm-mc/Disassembler.cpp (+3-1) 


``````````diff
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,

``````````

</details>


https://github.com/llvm/llvm-project/pull/217533


More information about the llvm-commits mailing list