https://github.com/felipepiovezan created 
https://github.com/llvm/llvm-project/pull/203190

This was used in older 32-bit ObjC programs, and it is not used anywhere by the 
debugger.

>From e4a9430869484950065823ea01274f9a921e635a Mon Sep 17 00:00:00 2001
From: Felipe de Azevedo Piovezan <[email protected]>
Date: Thu, 11 Jun 2026 08:10:45 +0100
Subject: [PATCH] [lldb] Delete AppleObjCRuntimeV1

This was used in older 32-bit ObjC programs, and it is not used
anywhere by the debugger.
---
 .../Clang/ClangExpressionParser.cpp           |   1 -
 .../AppleObjCRuntime/AppleObjCRuntime.cpp     |  14 +-
 .../AppleObjCRuntime/AppleObjCRuntimeV1.cpp   | 430 ------------------
 .../AppleObjCRuntime/AppleObjCRuntimeV1.h     | 160 -------
 .../ObjC/AppleObjCRuntime/CMakeLists.txt      |   1 -
 .../ObjC/ObjCLanguageRuntime.h                |   7 +-
 6 files changed, 7 insertions(+), 606 deletions(-)
 delete mode 100644 
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
 delete mode 100644 
lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h

diff --git 
a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp 
b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
index 861522623f68b..c5bcfa41d02b4 100644
--- a/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
+++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp
@@ -682,7 +682,6 @@ static void SetupLangOpts(CompilerInstance &compiler,
         lang_opts.ObjCRuntime.set(ObjCRuntime::MacOSX, VersionTuple(10, 7));
         break;
       case ObjCLanguageRuntime::ObjCRuntimeVersions::eObjC_VersionUnknown:
-      case ObjCLanguageRuntime::ObjCRuntimeVersions::eAppleObjC_V1:
         lang_opts.ObjCRuntime.set(ObjCRuntime::FragileMacOSX,
                                   VersionTuple(10, 7));
         break;
diff --git 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
index adb9da795f699..925b9f1f94da8 100644
--- 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
+++ 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
@@ -7,7 +7,6 @@
 
//===----------------------------------------------------------------------===//
 
 #include "AppleObjCRuntime.h"
-#include "AppleObjCRuntimeV1.h"
 #include "AppleObjCRuntimeV2.h"
 #include "AppleObjCTrampolineHandler.h"
 #include "Plugins/Language/ObjC/NSString.h"
@@ -58,15 +57,9 @@ AppleObjCRuntime::AppleObjCRuntime(Process *process)
   ReadObjCLibraryIfNeeded(process->GetTarget().GetImages());
 }
 
-void AppleObjCRuntime::Initialize() {
-  AppleObjCRuntimeV2::Initialize();
-  AppleObjCRuntimeV1::Initialize();
-}
+void AppleObjCRuntime::Initialize() { AppleObjCRuntimeV2::Initialize(); }
 
-void AppleObjCRuntime::Terminate() {
-  AppleObjCRuntimeV2::Terminate();
-  AppleObjCRuntimeV1::Terminate();
-}
+void AppleObjCRuntime::Terminate() { AppleObjCRuntimeV2::Terminate(); }
 
 llvm::Error AppleObjCRuntime::GetObjectDescription(Stream &str,
                                                    ValueObject &valobj) {
@@ -405,7 +398,8 @@ AppleObjCRuntime::GetObjCVersion(Process *process, ModuleSP 
&objc_module_sp) {
       SectionSP v1_telltale_section_sp =
           sections->FindSectionByName(ConstString("__OBJC"));
       if (v1_telltale_section_sp) {
-        return ObjCRuntimeVersions::eAppleObjC_V1;
+        // The V1 runtime is no longer supported.
+        return ObjCRuntimeVersions::eObjC_VersionUnknown;
       }
       return ObjCRuntimeVersions::eAppleObjC_V2;
     }
diff --git 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
deleted file mode 100644
index 4ddef329b3ed0..0000000000000
--- 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.cpp
+++ /dev/null
@@ -1,430 +0,0 @@
-//===-- AppleObjCRuntimeV1.cpp 
--------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "AppleObjCRuntimeV1.h"
-#include "AppleObjCDeclVendor.h"
-#include "AppleObjCTrampolineHandler.h"
-
-#include "clang/AST/Type.h"
-
-#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
-#include "lldb/Breakpoint/BreakpointLocation.h"
-#include "lldb/Core/Module.h"
-#include "lldb/Core/PluginManager.h"
-#include "lldb/Expression/FunctionCaller.h"
-#include "lldb/Expression/UtilityFunction.h"
-#include "lldb/Symbol/Symbol.h"
-#include "lldb/Target/ExecutionContext.h"
-#include "lldb/Target/Process.h"
-#include "lldb/Target/RegisterContext.h"
-#include "lldb/Target/Target.h"
-#include "lldb/Target/Thread.h"
-#include "lldb/Utility/ConstString.h"
-#include "lldb/Utility/LLDBLog.h"
-#include "lldb/Utility/Log.h"
-#include "lldb/Utility/Scalar.h"
-#include "lldb/Utility/Status.h"
-#include "lldb/Utility/StreamString.h"
-
-#include <memory>
-#include <vector>
-
-using namespace lldb;
-using namespace lldb_private;
-
-char AppleObjCRuntimeV1::ID = 0;
-
-AppleObjCRuntimeV1::AppleObjCRuntimeV1(Process *process)
-    : AppleObjCRuntime(process), m_hash_signature(),
-      m_isa_hash_table_ptr(LLDB_INVALID_ADDRESS) {}
-
-// for V1 runtime we just try to return a class name as that is the minimum
-// level of support required for the data formatters to work
-bool AppleObjCRuntimeV1::GetDynamicTypeAndAddress(
-    ValueObject &in_value, lldb::DynamicValueType use_dynamic,
-    TypeAndOrName &class_type_or_name, Address &address,
-    Value::ValueType &value_type, llvm::ArrayRef<uint8_t> &local_buffer) {
-  class_type_or_name.Clear();
-  value_type = Value::ValueType::Scalar;
-  if (CouldHaveDynamicValue(in_value)) {
-    auto class_descriptor(GetClassDescriptor(in_value));
-    if (class_descriptor && class_descriptor->IsValid() &&
-        class_descriptor->GetClassName()) {
-      const addr_t object_ptr = in_value.GetPointerValue().address;
-      address.SetRawAddress(object_ptr);
-      class_type_or_name.SetName(class_descriptor->GetClassName());
-    }
-  }
-  return !class_type_or_name.IsEmpty();
-}
-
-// Static Functions
-lldb_private::LanguageRuntime *
-AppleObjCRuntimeV1::CreateInstance(Process *process,
-                                   lldb::LanguageType language) {
-  // FIXME: This should be a MacOS or iOS process, and we need to look for the
-  // OBJC section to make
-  // sure we aren't using the V1 runtime.
-  if (language == eLanguageTypeObjC) {
-    ModuleSP objc_module_sp;
-
-    if (AppleObjCRuntime::GetObjCVersion(process, objc_module_sp) ==
-        ObjCRuntimeVersions::eAppleObjC_V1)
-      return new AppleObjCRuntimeV1(process);
-    else
-      return nullptr;
-  } else
-    return nullptr;
-}
-
-void AppleObjCRuntimeV1::Initialize() {
-  PluginManager::RegisterPlugin(
-      GetPluginNameStatic(), "Apple Objective-C Language Runtime - Version 1",
-      CreateInstance,
-      /*command_callback = */ nullptr, GetBreakpointExceptionPrecondition);
-}
-
-void AppleObjCRuntimeV1::Terminate() {
-  PluginManager::UnregisterPlugin(CreateInstance);
-}
-
-BreakpointResolverSP
-AppleObjCRuntimeV1::CreateExceptionResolver(const BreakpointSP &bkpt,
-                                            bool catch_bp, bool throw_bp) {
-  BreakpointResolverSP resolver_sp;
-
-  if (throw_bp)
-    resolver_sp = std::make_shared<BreakpointResolverName>(
-        bkpt, std::get<1>(GetExceptionThrowLocation()).AsCString(nullptr),
-        eFunctionNameTypeBase, eLanguageTypeUnknown, Breakpoint::Exact, 0,
-        /*offset_is_insn_count = */ false, eLazyBoolNo);
-  // FIXME: don't do catch yet.
-  return resolver_sp;
-}
-
-struct BufStruct {
-  char contents[2048];
-};
-
-llvm::Expected<std::unique_ptr<UtilityFunction>>
-AppleObjCRuntimeV1::CreateObjectChecker(std::string name,
-                                        ExecutionContext &exe_ctx) {
-  std::unique_ptr<BufStruct> buf(new BufStruct);
-
-  int strformatsize =
-      snprintf(&buf->contents[0], sizeof(buf->contents),
-               "struct __objc_class                                         "
-               "           \n"
-               "{                                                           "
-               "           \n"
-               "   struct __objc_class *isa;                                "
-               "           \n"
-               "   struct __objc_class *super_class;                        "
-               "           \n"
-               "   const char *name;                                        "
-               "           \n"
-               "   // rest of struct elided because unused                  "
-               "           \n"
-               "};                                                          "
-               "           \n"
-               "                                                            "
-               "           \n"
-               "struct __objc_object                                        "
-               "           \n"
-               "{                                                           "
-               "           \n"
-               "   struct __objc_class *isa;                                "
-               "           \n"
-               "};                                                          "
-               "           \n"
-               "                                                            "
-               "           \n"
-               "extern \"C\" void                                           "
-               "           \n"
-               "%s(void *$__lldb_arg_obj, void *$__lldb_arg_selector)       "
-               "           \n"
-               "{                                                           "
-               "           \n"
-               "   struct __objc_object *obj = (struct "
-               "__objc_object*)$__lldb_arg_obj; \n"
-               "   if ($__lldb_arg_obj == (void *)0)                     "
-               "                                \n"
-               "       return; // nil is ok                              "
-               "   (int)strlen(obj->isa->name);                             "
-               "           \n"
-               "}                                                           "
-               "           \n",
-               name.c_str());
-  assert(strformatsize < (int)sizeof(buf->contents));
-  UNUSED_IF_ASSERT_DISABLED(strformatsize);
-
-  return GetTargetRef().CreateUtilityFunction(buf->contents, std::move(name),
-                                              eLanguageTypeC, exe_ctx);
-}
-
-AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1(
-    ValueObject &isa_pointer) {
-  Initialize(isa_pointer.GetValueAsUnsigned(0), isa_pointer.GetProcessSP());
-}
-
-AppleObjCRuntimeV1::ClassDescriptorV1::ClassDescriptorV1(
-    ObjCISA isa, lldb::ProcessSP process_sp) {
-  Initialize(isa, process_sp);
-}
-
-void AppleObjCRuntimeV1::ClassDescriptorV1::Initialize(
-    ObjCISA isa, lldb::ProcessSP process_sp) {
-  if (!isa || !process_sp) {
-    m_valid = false;
-    return;
-  }
-
-  m_valid = true;
-
-  Status error;
-
-  m_isa = process_sp->ReadPointerFromMemory(isa, error);
-
-  if (error.Fail()) {
-    m_valid = false;
-    return;
-  }
-
-  uint32_t ptr_size = process_sp->GetAddressByteSize();
-
-  if (!IsPointerValid(m_isa, ptr_size)) {
-    m_valid = false;
-    return;
-  }
-
-  m_parent_isa = process_sp->ReadPointerFromMemory(m_isa + ptr_size, error);
-
-  if (error.Fail()) {
-    m_valid = false;
-    return;
-  }
-
-  if (!IsPointerValid(m_parent_isa, ptr_size, true)) {
-    m_valid = false;
-    return;
-  }
-
-  lldb::addr_t name_ptr =
-      process_sp->ReadPointerFromMemory(m_isa + 2 * ptr_size, error);
-
-  if (error.Fail()) {
-    m_valid = false;
-    return;
-  }
-
-  lldb::WritableDataBufferSP buffer_sp(new DataBufferHeap(1024, 0));
-
-  size_t count = process_sp->ReadCStringFromMemory(
-      name_ptr, (char *)buffer_sp->GetBytes(), 1024, error);
-
-  if (error.Fail()) {
-    m_valid = false;
-    return;
-  }
-
-  if (count)
-    m_name = ConstString(reinterpret_cast<const char 
*>(buffer_sp->GetBytes()));
-  else
-    m_name = ConstString();
-
-  m_instance_size = process_sp->ReadUnsignedIntegerFromMemory(
-      m_isa + 5 * ptr_size, ptr_size, 0, error);
-
-  if (error.Fail()) {
-    m_valid = false;
-    return;
-  }
-
-  m_process_wp = lldb::ProcessWP(process_sp);
-}
-
-AppleObjCRuntime::ClassDescriptorSP
-AppleObjCRuntimeV1::ClassDescriptorV1::GetSuperclass() {
-  if (!m_valid)
-    return AppleObjCRuntime::ClassDescriptorSP();
-  ProcessSP process_sp = m_process_wp.lock();
-  if (!process_sp)
-    return AppleObjCRuntime::ClassDescriptorSP();
-  return ObjCLanguageRuntime::ClassDescriptorSP(
-      new AppleObjCRuntimeV1::ClassDescriptorV1(m_parent_isa, process_sp));
-}
-
-std::unique_ptr<AppleObjCRuntime::ClassDescriptor>
-AppleObjCRuntimeV1::ClassDescriptorV1::GetMetaclass() const {
-  return nullptr;
-}
-
-bool AppleObjCRuntimeV1::ClassDescriptorV1::Describe(
-    std::function<void(ObjCLanguageRuntime::ObjCISA)> const &superclass_func,
-    std::function<bool(const char *, const char *)> const 
&instance_method_func,
-    std::function<bool(const char *, const char *)> const &class_method_func,
-    std::function<bool(const char *, const char *, lldb::addr_t,
-                       uint64_t)> const &ivar_func) const {
-  return false;
-}
-
-lldb::addr_t AppleObjCRuntimeV1::GetTaggedPointerObfuscator() {
-  return 0;
-}
-
-lldb::addr_t AppleObjCRuntimeV1::GetISAHashTablePointer() {
-  if (m_isa_hash_table_ptr == LLDB_INVALID_ADDRESS) {
-    ModuleSP objc_module_sp(GetObjCModule());
-
-    if (!objc_module_sp)
-      return LLDB_INVALID_ADDRESS;
-
-    static ConstString g_objc_debug_class_hash("_objc_debug_class_hash");
-
-    const Symbol *symbol = objc_module_sp->FindFirstSymbolWithNameAndType(
-        g_objc_debug_class_hash, lldb::eSymbolTypeData);
-    if (symbol && symbol->ValueIsAddress()) {
-      Process *process = GetProcess();
-      if (process) {
-
-        lldb::addr_t objc_debug_class_hash_addr =
-            symbol->GetAddressRef().GetLoadAddress(&process->GetTarget());
-
-        if (objc_debug_class_hash_addr != LLDB_INVALID_ADDRESS) {
-          Status error;
-          lldb::addr_t objc_debug_class_hash_ptr =
-              process->ReadPointerFromMemory(objc_debug_class_hash_addr, 
error);
-          if (objc_debug_class_hash_ptr != 0 &&
-              objc_debug_class_hash_ptr != LLDB_INVALID_ADDRESS) {
-            m_isa_hash_table_ptr = objc_debug_class_hash_ptr;
-          }
-        }
-      }
-    }
-  }
-  return m_isa_hash_table_ptr;
-}
-
-void AppleObjCRuntimeV1::UpdateISAToDescriptorMapIfNeeded() {
-  // TODO: implement HashTableSignature...
-  Process *process = GetProcess();
-
-  if (process) {
-    // Update the process stop ID that indicates the last time we updated the
-    // map, whether it was successful or not.
-    m_isa_to_descriptor_stop_id = process->GetStopID();
-
-    Log *log = GetLog(LLDBLog::Process);
-
-    ProcessSP process_sp = process->shared_from_this();
-
-    ModuleSP objc_module_sp(GetObjCModule());
-
-    if (!objc_module_sp)
-      return;
-
-    lldb::addr_t hash_table_ptr = GetISAHashTablePointer();
-    if (hash_table_ptr != LLDB_INVALID_ADDRESS) {
-      // Read the NXHashTable struct:
-      //
-      // typedef struct {
-      //     const NXHashTablePrototype *prototype;
-      //     unsigned   count;
-      //     unsigned   nbBuckets;
-      //     void       *buckets;
-      //     const void *info;
-      // } NXHashTable;
-
-      Status error;
-      DataBufferHeap buffer(1024, 0);
-      if (process->ReadMemory(hash_table_ptr, buffer.GetBytes(), 20, error) ==
-          20) {
-        const uint32_t addr_size = m_process->GetAddressByteSize();
-        const ByteOrder byte_order = m_process->GetByteOrder();
-        DataExtractor data(buffer.GetBytes(), buffer.GetByteSize(), byte_order,
-                           addr_size);
-        lldb::offset_t offset = addr_size; // Skip prototype
-        const uint32_t count = data.GetU32(&offset);
-        const uint32_t num_buckets = data.GetU32(&offset);
-        const addr_t buckets_ptr = data.GetAddress(&offset);
-        if (m_hash_signature.NeedsUpdate(count, num_buckets, buckets_ptr)) {
-          m_hash_signature.UpdateSignature(count, num_buckets, buckets_ptr);
-
-          const uint32_t data_size = num_buckets * 2 * sizeof(uint32_t);
-          buffer.SetByteSize(data_size);
-
-          if (process->ReadMemory(buckets_ptr, buffer.GetBytes(), data_size,
-                                  error) == data_size) {
-            data.SetData(buffer.GetBytes(), buffer.GetByteSize(), byte_order);
-            offset = 0;
-            for (uint32_t bucket_idx = 0; bucket_idx < num_buckets;
-                 ++bucket_idx) {
-              const uint32_t bucket_isa_count = data.GetU32(&offset);
-              const lldb::addr_t bucket_data = data.GetU32(&offset);
-
-              if (bucket_isa_count == 0)
-                continue;
-
-              ObjCISA isa;
-              if (bucket_isa_count == 1) {
-                // When we only have one entry in the bucket, the bucket data
-                // is the "isa"
-                isa = bucket_data;
-                if (isa) {
-                  if (!ISAIsCached(isa)) {
-                    ClassDescriptorSP descriptor_sp(
-                        new ClassDescriptorV1(isa, process_sp));
-
-                    LLDB_LOGF_VERBOSE(
-                        log,
-                        "AppleObjCRuntimeV1 added (ObjCISA)0x%" PRIx64
-                        " from _objc_debug_class_hash to "
-                        "isa->descriptor cache",
-                        isa);
-
-                    AddClass(isa, descriptor_sp);
-                  }
-                }
-              } else {
-                // When we have more than one entry in the bucket, the bucket
-                // data is a pointer to an array of "isa" values
-                addr_t isa_addr = bucket_data;
-                for (uint32_t isa_idx = 0; isa_idx < bucket_isa_count;
-                     ++isa_idx, isa_addr += addr_size) {
-                  isa = m_process->ReadPointerFromMemory(isa_addr, error);
-
-                  if (isa && isa != LLDB_INVALID_ADDRESS) {
-                    if (!ISAIsCached(isa)) {
-                      ClassDescriptorSP descriptor_sp(
-                          new ClassDescriptorV1(isa, process_sp));
-
-                      LLDB_LOGF_VERBOSE(
-                          log,
-                          "AppleObjCRuntimeV1 added (ObjCISA)0x%" PRIx64
-                          " from _objc_debug_class_hash to isa->descriptor "
-                          "cache",
-                          isa);
-
-                      AddClass(isa, descriptor_sp);
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    }
-  } else {
-    m_isa_to_descriptor_stop_id = UINT32_MAX;
-  }
-}
-
-DeclVendor *AppleObjCRuntimeV1::GetDeclVendor() {
-  return nullptr;
-}
diff --git 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
deleted file mode 100644
index 9e74a735cbc62..0000000000000
--- 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h
+++ /dev/null
@@ -1,160 +0,0 @@
-//===-- AppleObjCRuntimeV1.h ------------------------------------*- C++ 
-*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM 
Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef 
LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV1_H
-#define 
LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV1_H
-
-#include "AppleObjCRuntime.h"
-#include "lldb/lldb-private.h"
-
-#include "Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h"
-
-namespace lldb_private {
-
-class AppleObjCRuntimeV1 : public AppleObjCRuntime {
-public:
-  ~AppleObjCRuntimeV1() override = default;
-
-  // Static Functions
-  static void Initialize();
-
-  static void Terminate();
-
-  static lldb_private::LanguageRuntime *
-  CreateInstance(Process *process, lldb::LanguageType language);
-
-  static llvm::StringRef GetPluginNameStatic() { return "apple-objc-v1"; }
-
-  static char ID;
-
-  bool isA(const void *ClassID) const override {
-    return ClassID == &ID || AppleObjCRuntime::isA(ClassID);
-  }
-
-  static bool classof(const LanguageRuntime *runtime) {
-    return runtime->isA(&ID);
-  }
-
-  lldb::addr_t GetTaggedPointerObfuscator();
-
-  class ClassDescriptorV1 : public ObjCLanguageRuntime::ClassDescriptor {
-  public:
-    ClassDescriptorV1(ValueObject &isa_pointer);
-    ClassDescriptorV1(ObjCISA isa, lldb::ProcessSP process_sp);
-
-    ~ClassDescriptorV1() override = default;
-
-    ConstString GetClassName() override { return m_name; }
-
-    ClassDescriptorSP GetSuperclass() override;
-
-    std::unique_ptr<ClassDescriptor> GetMetaclass() const override;
-
-    bool IsValid() override { return m_valid; }
-
-    // v1 does not support tagged pointers
-    bool GetTaggedPointerInfo(uint64_t *info_bits = nullptr,
-                              uint64_t *value_bits = nullptr,
-                              uint64_t *payload = nullptr) override {
-      return false;
-    }
-
-    bool GetTaggedPointerInfoSigned(uint64_t *info_bits = nullptr,
-                                    int64_t *value_bits = nullptr,
-                                    uint64_t *payload = nullptr) override {
-      return false;
-    }
-
-    uint64_t GetInstanceSize() override { return m_instance_size; }
-
-    ObjCISA GetISA() override { return m_isa; }
-
-    bool
-    Describe(std::function<void(ObjCLanguageRuntime::ObjCISA)> const
-                 &superclass_func,
-             std::function<bool(const char *, const char *)> const
-                 &instance_method_func,
-             std::function<bool(const char *, const char *)> const
-                 &class_method_func,
-             std::function<bool(const char *, const char *, lldb::addr_t,
-                                uint64_t)> const &ivar_func) const override;
-
-  protected:
-    void Initialize(ObjCISA isa, lldb::ProcessSP process_sp);
-
-  private:
-    ConstString m_name;
-    ObjCISA m_isa;
-    ObjCISA m_parent_isa;
-    bool m_valid;
-    lldb::ProcessWP m_process_wp;
-    uint64_t m_instance_size;
-  };
-
-  // These are generic runtime functions:
-  bool GetDynamicTypeAndAddress(ValueObject &in_value,
-                                lldb::DynamicValueType use_dynamic,
-                                TypeAndOrName &class_type_or_name,
-                                Address &address, Value::ValueType &value_type,
-                                llvm::ArrayRef<uint8_t> &local_buffer) 
override;
-
-  llvm::Expected<std::unique_ptr<UtilityFunction>>
-  CreateObjectChecker(std::string, ExecutionContext &exe_ctx) override;
-
-  // PluginInterface protocol
-  llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
-
-  ObjCRuntimeVersions GetRuntimeVersion() const override {
-    return ObjCRuntimeVersions::eAppleObjC_V1;
-  }
-
-  void UpdateISAToDescriptorMapIfNeeded() override;
-
-  DeclVendor *GetDeclVendor() override;
-
-protected:
-  lldb::BreakpointResolverSP
-  CreateExceptionResolver(const lldb::BreakpointSP &bkpt,
-                          bool catch_bp, bool throw_bp) override;
-
-  class HashTableSignature {
-  public:
-    HashTableSignature() = default;
-
-    bool NeedsUpdate(uint32_t count, uint32_t num_buckets,
-                     lldb::addr_t buckets_ptr) {
-      return m_count != count || m_num_buckets != num_buckets ||
-             m_buckets_ptr != buckets_ptr;
-    }
-
-    void UpdateSignature(uint32_t count, uint32_t num_buckets,
-                         lldb::addr_t buckets_ptr) {
-      m_count = count;
-      m_num_buckets = num_buckets;
-      m_buckets_ptr = buckets_ptr;
-    }
-
-  protected:
-    uint32_t m_count = 0;
-    uint32_t m_num_buckets = 0;
-    lldb::addr_t m_buckets_ptr = LLDB_INVALID_ADDRESS;
-  };
-
-  lldb::addr_t GetISAHashTablePointer();
-
-  HashTableSignature m_hash_signature;
-  lldb::addr_t m_isa_hash_table_ptr;
-  std::unique_ptr<DeclVendor> m_decl_vendor_up;
-
-private:
-  AppleObjCRuntimeV1(Process *process);
-};
-
-} // namespace lldb_private
-
-#endif // 
LLDB_SOURCE_PLUGINS_LANGUAGERUNTIME_OBJC_APPLEOBJCRUNTIME_APPLEOBJCRUNTIMEV1_H
diff --git 
a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt 
b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
index 0b2dfe12c5c46..a45a71dfac819 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/CMakeLists.txt
@@ -1,6 +1,5 @@
 add_lldb_library(lldbPluginAppleObjCRuntime PLUGIN
   AppleObjCRuntime.cpp
-  AppleObjCRuntimeV1.cpp
   AppleObjCRuntimeV2.cpp
   AppleObjCTrampolineHandler.cpp
   AppleObjCDeclVendor.cpp
diff --git a/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h 
b/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
index 8b5d6af54cbc3..bf04591e7f8a4 100644
--- a/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
+++ b/lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.h
@@ -40,7 +40,6 @@ class ObjCLanguageRuntime : public LanguageRuntime {
 public:
   enum class ObjCRuntimeVersions {
     eObjC_VersionUnknown = 0,
-    eAppleObjC_V1 = 1,
     eAppleObjC_V2 = 2,
     eGNUstep_libobjc2 = 3,
   };
@@ -51,7 +50,7 @@ class ObjCLanguageRuntime : public LanguageRuntime {
   typedef std::shared_ptr<ClassDescriptor> ClassDescriptorSP;
 
   // the information that we want to support retrieving from an ObjC class this
-  // needs to be pure virtual since there are at least 2 different
+  // needs to be pure virtual since there can be multiple
   // implementations of the runtime, and more might come
   class ClassDescriptor {
   public:
@@ -66,7 +65,7 @@ class ObjCLanguageRuntime : public LanguageRuntime {
     virtual std::unique_ptr<ClassDescriptor> GetMetaclass() const = 0;
 
     // virtual if any implementation has some other version-specific rules but
-    // for the known v1/v2 this is all that needs to be done
+    // for the known runtime versions this is all that needs to be done
     virtual bool IsKVO() {
       if (m_is_kvo == eLazyBoolCalculate) {
         const char *class_name = GetClassName().AsCString(nullptr);
@@ -78,7 +77,7 @@ class ObjCLanguageRuntime : public LanguageRuntime {
     }
 
     // virtual if any implementation has some other version-specific rules but
-    // for the known v1/v2 this is all that needs to be done
+    // for the known runtime versions this is all that needs to be done
     virtual bool IsCFType() {
       if (m_is_cf == eLazyBoolCalculate) {
         const char *class_name = GetClassName().AsCString(nullptr);

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to