xref: /freebsd-src/contrib/llvm-project/lldb/source/Core/ValueObjectConstResultChild.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
15ffd83dbSDimitry Andric //===-- ValueObjectConstResultChild.cpp -----------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #include "lldb/Core/ValueObjectConstResultChild.h"
100b57cec5SDimitry Andric 
110b57cec5SDimitry Andric #include "lldb/lldb-private-enumerations.h"
120b57cec5SDimitry Andric namespace lldb_private {
130b57cec5SDimitry Andric class DataExtractor;
140b57cec5SDimitry Andric }
150b57cec5SDimitry Andric namespace lldb_private {
160b57cec5SDimitry Andric class Status;
170b57cec5SDimitry Andric }
180b57cec5SDimitry Andric namespace lldb_private {
190b57cec5SDimitry Andric class ValueObject;
200b57cec5SDimitry Andric }
210b57cec5SDimitry Andric 
220b57cec5SDimitry Andric using namespace lldb_private;
230b57cec5SDimitry Andric 
240b57cec5SDimitry Andric ValueObjectConstResultChild::ValueObjectConstResultChild(
250b57cec5SDimitry Andric     ValueObject &parent, const CompilerType &compiler_type,
260b57cec5SDimitry Andric     ConstString name, uint32_t byte_size, int32_t byte_offset,
270b57cec5SDimitry Andric     uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset,
280b57cec5SDimitry Andric     bool is_base_class, bool is_deref_of_parent, lldb::addr_t live_address,
290b57cec5SDimitry Andric     uint64_t language_flags)
300b57cec5SDimitry Andric     : ValueObjectChild(parent, compiler_type, name, byte_size, byte_offset,
310b57cec5SDimitry Andric                        bitfield_bit_size, bitfield_bit_offset, is_base_class,
320b57cec5SDimitry Andric                        is_deref_of_parent, eAddressTypeLoad, language_flags),
330b57cec5SDimitry Andric       m_impl(this, live_address) {
340b57cec5SDimitry Andric   m_name = name;
350b57cec5SDimitry Andric }
360b57cec5SDimitry Andric 
37fe6060f1SDimitry Andric ValueObjectConstResultChild::~ValueObjectConstResultChild() = default;
380b57cec5SDimitry Andric 
390b57cec5SDimitry Andric lldb::ValueObjectSP ValueObjectConstResultChild::Dereference(Status &error) {
400b57cec5SDimitry Andric   return m_impl.Dereference(error);
410b57cec5SDimitry Andric }
420b57cec5SDimitry Andric 
430b57cec5SDimitry Andric lldb::ValueObjectSP ValueObjectConstResultChild::GetSyntheticChildAtOffset(
440b57cec5SDimitry Andric     uint32_t offset, const CompilerType &type, bool can_create,
450b57cec5SDimitry Andric     ConstString name_const_str) {
460b57cec5SDimitry Andric   return m_impl.GetSyntheticChildAtOffset(offset, type, can_create,
470b57cec5SDimitry Andric                                           name_const_str);
480b57cec5SDimitry Andric }
490b57cec5SDimitry Andric 
500b57cec5SDimitry Andric lldb::ValueObjectSP ValueObjectConstResultChild::AddressOf(Status &error) {
510b57cec5SDimitry Andric   return m_impl.AddressOf(error);
520b57cec5SDimitry Andric }
530b57cec5SDimitry Andric 
540b57cec5SDimitry Andric lldb::addr_t ValueObjectConstResultChild::GetAddressOf(
550b57cec5SDimitry Andric   bool scalar_is_load_address, AddressType* address_type) {
560b57cec5SDimitry Andric   return m_impl.GetAddressOf(scalar_is_load_address, address_type);
570b57cec5SDimitry Andric }
580b57cec5SDimitry Andric 
590b57cec5SDimitry Andric size_t ValueObjectConstResultChild::GetPointeeData(DataExtractor &data,
600b57cec5SDimitry Andric                                                    uint32_t item_idx,
610b57cec5SDimitry Andric                                                    uint32_t item_count) {
620b57cec5SDimitry Andric   return m_impl.GetPointeeData(data, item_idx, item_count);
630b57cec5SDimitry Andric }
640b57cec5SDimitry Andric 
650b57cec5SDimitry Andric lldb::ValueObjectSP
66*06c3fb27SDimitry Andric ValueObjectConstResultChild::DoCast(const CompilerType &compiler_type) {
670b57cec5SDimitry Andric   return m_impl.Cast(compiler_type);
680b57cec5SDimitry Andric }
69