[llvm] [X86AsmBackend] Define reset() hook (PR #213409)

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 31 22:00:14 PDT 2026


https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/213409

Noticed when reviewing #175830: MCObjectStreamer::reset frees the
fragments PendingBA and PrevInstPosition point into, but X86AsmBackend
keeps them. Define the hook.

>From f418a7747070a8b18bbe0b172ac3dc409e3315e2 Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Fri, 31 Jul 2026 21:57:32 -0700
Subject: [PATCH] [X86AsmBackend] Define reset() hook

Noticed when reviewing #175830: MCObjectStreamer::reset frees the
fragments PendingBA and PrevInstPosition point into, but X86AsmBackend
keeps them. Define the hook.
---
 llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
index 0b3da6582d907..98a541b3d7351 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
@@ -163,6 +163,13 @@ class X86AsmBackend : public MCAsmBackend {
         AllowAutoPadding && TargetPrefixMax != 0 && X86PadForBranchAlign;
   }
 
+  void reset() override {
+    PrevInst = MCInst();
+    PrevInstOpcode = 0;
+    PendingBA = nullptr;
+    PrevInstPosition = {};
+  }
+
   void emitInstructionBegin(MCObjectStreamer &OS, const MCInst &Inst,
                             const MCSubtargetInfo &STI);
   void emitInstructionEnd(MCObjectStreamer &OS, const MCInst &Inst);



More information about the llvm-commits mailing list