[Lldb-commits] [lldb] [lldb][AArch64][Linux] Make RegisterSetType a plain enum with bitmask values (PR #223373)

Raphael Isemann via lldb-commits lldb-commits at lists.llvm.org
Tue Sep 29 05:09:38 PDT 2026


================
@@ -112,39 +110,29 @@ class NativeRegisterContextLinux_arm64
     GCS = 1 << 11,
     // Permission Overlay registers.
     POE = 1 << 12,
-    LLVM_MARK_AS_BITMASK_ENUM(POE),
   };
-
-  RegisterSetType m_validity = static_cast<RegisterSetType>(0);
-
   // Returns the ptrace register set number for the given register set.
   unsigned int GetPtraceSet(RegisterSetType set) const;
 
   size_t GetSetSize(RegisterSetType set) const;
 
   void *GetSetBuffer(RegisterSetType set);
 
-  void MakeValid(RegisterSetType set) { m_validity |= set; }
+  std::underlying_type_t<RegisterSetType> m_validity;
 
-  [[nodiscard]] bool IsValid(RegisterSetType set) const {
-    return any(m_validity & set);
+  void MakeValid(RegisterSetType set) {
+    m_validity |= static_cast<std::underlying_type_t<RegisterSetType>>(set);
----------------
Teemperor wrote:

nit: You can just typedef `std::underlying_type_t<RegisterSetType>` to something like `RegisterSetStorageType` so the other code becomes more readable.

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


More information about the lldb-commits mailing list