llvm/lldb/source/Plugins/Language/ObjC/NSArray.cpp

//===-- NSArray.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 "clang/AST/ASTContext.h"
#include "clang/Basic/TargetInfo.h"

#include "Cocoa.h"

#include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"

#include "lldb/Core/ValueObject.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/DataFormatters/FormattersHelpers.h"
#include "lldb/Expression/FunctionCaller.h"
#include "lldb/Target/Language.h"
#include "lldb/Target/Target.h"
#include "lldb/Utility/DataBufferHeap.h"
#include "lldb/Utility/Endian.h"
#include "lldb/Utility/Status.h"
#include "lldb/Utility/Stream.h"

usingnamespacelldb;
usingnamespacelldb_private;
usingnamespacelldb_private::formatters;

namespace lldb_private {
namespace formatters {
std::map<ConstString, CXXFunctionSummaryFormat::Callback> &
NSArray_Additionals::GetAdditionalSummaries() {}

std::map<ConstString, CXXSyntheticChildren::CreateFrontEndCallback> &
NSArray_Additionals::GetAdditionalSynthetics() {}

class NSArrayMSyntheticFrontEndBase : public SyntheticChildrenFrontEnd {};

template <typename D32, typename D64>
class GenericNSArrayMSyntheticFrontEnd : public NSArrayMSyntheticFrontEndBase {};

namespace Foundation1010 {
  namespace {
    struct DataDescriptor_32 {};

    struct DataDescriptor_64 {};
  }

  NSArrayMSyntheticFrontEnd;
}

namespace Foundation1428 {
  namespace {
    struct DataDescriptor_32 {};

    struct DataDescriptor_64 {};
  }

  NSArrayMSyntheticFrontEnd;
}

namespace Foundation1437 {
  template <typename PtrType>
  struct DataDescriptor {};

  NSArrayMSyntheticFrontEnd;

  template <typename DD>
  uint64_t
  __NSArrayMSize_Impl(lldb_private::Process &process,
                      lldb::addr_t valobj_addr, Status &error) {}

  uint64_t
  __NSArrayMSize(lldb_private::Process &process, lldb::addr_t valobj_addr,
                 Status &error) {}

}

namespace CallStackArray {
struct DataDescriptor_32 {};

struct DataDescriptor_64 {};

NSCallStackArraySyntheticFrontEnd;
} // namespace CallStackArray

template <typename D32, typename D64, bool Inline>
class GenericNSArrayISyntheticFrontEnd : public SyntheticChildrenFrontEnd {};

namespace Foundation1300 {
    struct IDD32 {};

    struct IDD64 {};

    NSArrayISyntheticFrontEnd;
}

namespace Foundation1430 {
    NSArrayISyntheticFrontEnd;
}

namespace Foundation1436 {
    struct IDD32 {};

    struct IDD64 {};

    NSArrayI_TransferSyntheticFrontEnd;

    NSArrayISyntheticFrontEnd;

    NSFrozenArrayMSyntheticFrontEnd;

    uint64_t
    __NSFrozenArrayMSize(lldb_private::Process &process, lldb::addr_t valobj_addr,
                         Status &error) {}
}

namespace ConstantArray {

struct ConstantArray32 {};

struct ConstantArray64 {};

NSConstantArraySyntheticFrontEnd;
} // namespace ConstantArray

class NSArray0SyntheticFrontEnd : public SyntheticChildrenFrontEnd {};

class NSArray1SyntheticFrontEnd : public SyntheticChildrenFrontEnd {};
} // namespace formatters
} // namespace lldb_private

bool lldb_private::formatters::NSArraySummaryProvider(
    ValueObject &valobj, Stream &stream, const TypeSummaryOptions &options) {}

lldb_private::formatters::NSArrayMSyntheticFrontEndBase::
    NSArrayMSyntheticFrontEndBase(lldb::ValueObjectSP valobj_sp)
    :{}

template <typename D32, typename D64>
lldb_private::formatters::
  GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
    :{}

llvm::Expected<uint32_t> lldb_private::formatters::
    NSArrayMSyntheticFrontEndBase::CalculateNumChildren() {}

lldb::ValueObjectSP
lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetChildAtIndex(
    uint32_t idx) {}

template <typename D32, typename D64>
lldb::ChildCacheState
lldb_private::formatters::GenericNSArrayMSyntheticFrontEnd<D32, D64>::Update() {}

bool
lldb_private::formatters::NSArrayMSyntheticFrontEndBase::MightHaveChildren() {}

size_t
lldb_private::formatters::NSArrayMSyntheticFrontEndBase::GetIndexOfChildWithName(
    ConstString name) {}

template <typename D32, typename D64>
lldb_private::formatters::GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd::~GenericNSArrayMSyntheticFrontEnd() {}

template <typename D32, typename D64>
lldb::addr_t
lldb_private::formatters::
  GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd::GetDataAddress() {}

template <typename D32, typename D64>
uint64_t
lldb_private::formatters::
  GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd::GetUsedCount() {}

template <typename D32, typename D64>
uint64_t
lldb_private::formatters::
  GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd::GetOffset() {}

template <typename D32, typename D64>
uint64_t
lldb_private::formatters::
  GenericNSArrayMSyntheticFrontEnd<D32, D64>::
    GenericNSArrayMSyntheticFrontEnd::GetSize() {}

template <typename D32, typename D64, bool Inline>
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
    GenericNSArrayISyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
    :{}

template <typename D32, typename D64, bool Inline>
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
    GenericNSArrayISyntheticFrontEnd::~GenericNSArrayISyntheticFrontEnd() {}

template <typename D32, typename D64, bool Inline>
size_t
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
  GetIndexOfChildWithName(ConstString name) {}

template <typename D32, typename D64, bool Inline>
llvm::Expected<uint32_t>
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<
    D32, D64, Inline>::CalculateNumChildren() {}

template <typename D32, typename D64, bool Inline>
lldb::ChildCacheState
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64,
                                                           Inline>::Update() {}

template <typename D32, typename D64, bool Inline>
bool
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
  MightHaveChildren() {}

template <typename D32, typename D64, bool Inline>
lldb::ValueObjectSP
lldb_private::formatters::GenericNSArrayISyntheticFrontEnd<D32, D64, Inline>::
  GetChildAtIndex(uint32_t idx) {}

lldb_private::formatters::NSArray0SyntheticFrontEnd::NSArray0SyntheticFrontEnd(
    lldb::ValueObjectSP valobj_sp)
    :{}

size_t
lldb_private::formatters::NSArray0SyntheticFrontEnd::GetIndexOfChildWithName(
    ConstString name) {}

llvm::Expected<uint32_t>
lldb_private::formatters::NSArray0SyntheticFrontEnd::CalculateNumChildren() {}

lldb::ChildCacheState
lldb_private::formatters::NSArray0SyntheticFrontEnd::Update() {}

bool lldb_private::formatters::NSArray0SyntheticFrontEnd::MightHaveChildren() {}

lldb::ValueObjectSP
lldb_private::formatters::NSArray0SyntheticFrontEnd::GetChildAtIndex(
    uint32_t idx) {}

lldb_private::formatters::NSArray1SyntheticFrontEnd::NSArray1SyntheticFrontEnd(
    lldb::ValueObjectSP valobj_sp)
    :{}

size_t
lldb_private::formatters::NSArray1SyntheticFrontEnd::GetIndexOfChildWithName(
    ConstString name) {}

llvm::Expected<uint32_t>
lldb_private::formatters::NSArray1SyntheticFrontEnd::CalculateNumChildren() {}

lldb::ChildCacheState
lldb_private::formatters::NSArray1SyntheticFrontEnd::Update() {}

bool lldb_private::formatters::NSArray1SyntheticFrontEnd::MightHaveChildren() {}

lldb::ValueObjectSP
lldb_private::formatters::NSArray1SyntheticFrontEnd::GetChildAtIndex(
    uint32_t idx) {}

SyntheticChildrenFrontEnd *
lldb_private::formatters::NSArraySyntheticFrontEndCreator(
    CXXSyntheticChildren *synth, lldb::ValueObjectSP valobj_sp) {}