xref: /freebsd/contrib/llvm-project/lldb/source/ValueObject/ValueObjectConstResultChild.cpp (revision 700637cbb5e582861067a11aaca4d053546871d2)
1 //===-- ValueObjectConstResultChild.cpp -----------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "lldb/ValueObject/ValueObjectConstResultChild.h"
10 
11 #include "lldb/lldb-private-enumerations.h"
12 namespace lldb_private {
13 class DataExtractor;
14 }
15 namespace lldb_private {
16 class Status;
17 }
18 namespace lldb_private {
19 class ValueObject;
20 }
21 
22 using namespace lldb_private;
23 
ValueObjectConstResultChild(ValueObject & parent,const CompilerType & compiler_type,ConstString name,uint32_t byte_size,int32_t byte_offset,uint32_t bitfield_bit_size,uint32_t bitfield_bit_offset,bool is_base_class,bool is_deref_of_parent,lldb::addr_t live_address,uint64_t language_flags)24 ValueObjectConstResultChild::ValueObjectConstResultChild(
25     ValueObject &parent, const CompilerType &compiler_type, ConstString name,
26     uint32_t byte_size, int32_t byte_offset, uint32_t bitfield_bit_size,
27     uint32_t bitfield_bit_offset, bool is_base_class, bool is_deref_of_parent,
28     lldb::addr_t live_address, uint64_t language_flags)
29     : ValueObjectChild(parent, compiler_type, name, byte_size, byte_offset,
30                        bitfield_bit_size, bitfield_bit_offset, is_base_class,
31                        is_deref_of_parent, eAddressTypeLoad, language_flags),
32       m_impl(this, live_address) {
33   m_name = name;
34 }
35 
36 ValueObjectConstResultChild::~ValueObjectConstResultChild() = default;
37 
Dereference(Status & error)38 lldb::ValueObjectSP ValueObjectConstResultChild::Dereference(Status &error) {
39   return m_impl.Dereference(error);
40 }
41 
GetSyntheticChildAtOffset(uint32_t offset,const CompilerType & type,bool can_create,ConstString name_const_str)42 lldb::ValueObjectSP ValueObjectConstResultChild::GetSyntheticChildAtOffset(
43     uint32_t offset, const CompilerType &type, bool can_create,
44     ConstString name_const_str) {
45   return m_impl.GetSyntheticChildAtOffset(offset, type, can_create,
46                                           name_const_str);
47 }
48 
AddressOf(Status & error)49 lldb::ValueObjectSP ValueObjectConstResultChild::AddressOf(Status &error) {
50   return m_impl.AddressOf(error);
51 }
52 
53 ValueObject::AddrAndType
GetAddressOf(bool scalar_is_load_address)54 ValueObjectConstResultChild::GetAddressOf(bool scalar_is_load_address) {
55   return m_impl.GetAddressOf(scalar_is_load_address);
56 }
57 
GetPointeeData(DataExtractor & data,uint32_t item_idx,uint32_t item_count)58 size_t ValueObjectConstResultChild::GetPointeeData(DataExtractor &data,
59                                                    uint32_t item_idx,
60                                                    uint32_t item_count) {
61   return m_impl.GetPointeeData(data, item_idx, item_count);
62 }
63 
64 lldb::ValueObjectSP
DoCast(const CompilerType & compiler_type)65 ValueObjectConstResultChild::DoCast(const CompilerType &compiler_type) {
66   return m_impl.Cast(compiler_type);
67 }
68