[llvm] [NFC][Target] Fixed rule-of-three for RegisterTargetPassConfigCallback class (PR #193470)

Jaydeep Chauhan via llvm-commits llvm-commits at lists.llvm.org
Thu Apr 23 02:00:28 PDT 2026


https://github.com/JaydeepChauhan14 updated https://github.com/llvm/llvm-project/pull/193470

>From c5f3c3e53b11ca72b3b54d0cc0123605b576accf Mon Sep 17 00:00:00 2001
From: Chauhan Jaydeep Ashwinbhai <chauhan.jaydeep.ashwinbhai at intel.com>
Date: Wed, 22 Apr 2026 04:18:23 -0700
Subject: [PATCH 1/2] [NFC][Target][MC] Fixed rule-of-three for
 MCFragment/Archive/RegisterTargetPassConfigCallback classes

---
 llvm/include/llvm/MC/MCSection.h                            | 1 +
 llvm/include/llvm/Object/Archive.h                          | 1 +
 llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h | 4 ++++
 3 files changed, 6 insertions(+)

diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h
index 82bfa41c9215b..3fe44efc91de9 100644
--- a/llvm/include/llvm/MC/MCSection.h
+++ b/llvm/include/llvm/MC/MCSection.h
@@ -173,6 +173,7 @@ class MCFragment {
                       bool HasInstructions = false);
   MCFragment(const MCFragment &) = delete;
   MCFragment &operator=(const MCFragment &) = delete;
+  ~MCFragment() = default;
 
   MCFragment *getNext() const { return Next; }
 
diff --git a/llvm/include/llvm/Object/Archive.h b/llvm/include/llvm/Object/Archive.h
index c97018d3231d5..8ac2eed9835a4 100644
--- a/llvm/include/llvm/Object/Archive.h
+++ b/llvm/include/llvm/Object/Archive.h
@@ -339,6 +339,7 @@ class LLVM_ABI Archive : public Binary {
   // Explicitly non-copyable.
   Archive(Archive const &) = delete;
   Archive &operator=(Archive const &) = delete;
+  ~Archive() = default;
 
   /// Size field is 10 decimal digits long
   static const uint64_t MaxMemberSize = 9999999999;
diff --git a/llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h b/llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h
index 7020cef7cad7b..ef86c3238895a 100644
--- a/llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h
+++ b/llvm/include/llvm/Target/RegisterTargetPassConfigCallback.h
@@ -28,6 +28,10 @@ class RegisterTargetPassConfigCallback {
 
   LLVM_ABI explicit RegisterTargetPassConfigCallback(PassConfigCallback &&C);
   LLVM_ABI ~RegisterTargetPassConfigCallback();
+  RegisterTargetPassConfigCallback(const RegisterTargetPassConfigCallback &) =
+      delete;
+  RegisterTargetPassConfigCallback &
+  operator=(const RegisterTargetPassConfigCallback &) = delete;
 };
 
 LLVM_ABI void

>From 0a1be8f6c4e82b83e9b2f7757d2a1c220c9c39e6 Mon Sep 17 00:00:00 2001
From: Chauhan Jaydeep Ashwinbhai <chauhan.jaydeep.ashwinbhai at intel.com>
Date: Wed, 22 Apr 2026 22:34:40 -0700
Subject: [PATCH 2/2] Removed redundant destructor

---
 llvm/include/llvm/MC/MCSection.h   | 1 -
 llvm/include/llvm/Object/Archive.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h
index 3fe44efc91de9..82bfa41c9215b 100644
--- a/llvm/include/llvm/MC/MCSection.h
+++ b/llvm/include/llvm/MC/MCSection.h
@@ -173,7 +173,6 @@ class MCFragment {
                       bool HasInstructions = false);
   MCFragment(const MCFragment &) = delete;
   MCFragment &operator=(const MCFragment &) = delete;
-  ~MCFragment() = default;
 
   MCFragment *getNext() const { return Next; }
 
diff --git a/llvm/include/llvm/Object/Archive.h b/llvm/include/llvm/Object/Archive.h
index 8ac2eed9835a4..c97018d3231d5 100644
--- a/llvm/include/llvm/Object/Archive.h
+++ b/llvm/include/llvm/Object/Archive.h
@@ -339,7 +339,6 @@ class LLVM_ABI Archive : public Binary {
   // Explicitly non-copyable.
   Archive(Archive const &) = delete;
   Archive &operator=(Archive const &) = delete;
-  ~Archive() = default;
 
   /// Size field is 10 decimal digits long
   static const uint64_t MaxMemberSize = 9999999999;



More information about the llvm-commits mailing list