Files
llvm-project/lldb/source/Core/ValueObjectConstResultChild.cpp
Enrico Granata dc62ffd37b Add a way for source languages to "mark" ValueObjects with language-specific flags
In this way, when a language needs to tell itself things that are not bound to a type but to a value (imagine a base-class relation, this is not about the type, but about the ValueObject), it can do so in a clean and general fashion

The interpretation of the values of the flags is, of course, up to the language that owns the value (the value object's runtime language, that is)

llvm-svn: 252503
2015-11-09 19:27:34 +00:00

90 lines
2.5 KiB
C++

//===-- ValueObjectConstResultChild.cpp ------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "lldb/Core/ValueObjectConstResultChild.h"
#include "lldb/Core/ValueObjectConstResult.h"
#include "lldb/Core/ValueObjectList.h"
#include "lldb/Symbol/ClangASTContext.h"
using namespace lldb_private;
ValueObjectConstResultChild::ValueObjectConstResultChild
(
ValueObject &parent,
const CompilerType &compiler_type,
const 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
) :
ValueObjectChild (parent,
compiler_type,
name,
byte_size,
byte_offset,
bitfield_bit_size,
bitfield_bit_offset,
is_base_class,
is_deref_of_parent,
eAddressTypeLoad,
language_flags),
m_impl(this, live_address)
{
m_name = name;
}
ValueObjectConstResultChild::~ValueObjectConstResultChild()
{
}
lldb::ValueObjectSP
ValueObjectConstResultChild::Dereference (Error &error)
{
return m_impl.Dereference(error);
}
lldb::ValueObjectSP
ValueObjectConstResultChild::GetSyntheticChildAtOffset(uint32_t offset, const CompilerType& type, bool can_create)
{
return m_impl.GetSyntheticChildAtOffset(offset, type, can_create);
}
lldb::ValueObjectSP
ValueObjectConstResultChild::AddressOf (Error &error)
{
return m_impl.AddressOf(error);
}
ValueObject *
ValueObjectConstResultChild::CreateChildAtIndex (size_t idx, bool synthetic_array_member, int32_t synthetic_index)
{
return m_impl.CreateChildAtIndex(idx, synthetic_array_member, synthetic_index);
}
size_t
ValueObjectConstResultChild::GetPointeeData (DataExtractor& data,
uint32_t item_idx,
uint32_t item_count)
{
return m_impl.GetPointeeData(data, item_idx, item_count);
}
lldb::ValueObjectSP
ValueObjectConstResultChild::Cast (const CompilerType &compiler_type)
{
return m_impl.Cast(compiler_type);
}