| //===-- ClangExpressionVariable.cpp -----------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "ClangExpressionVariable.h" |
| |
| #include "clang/AST/ASTContext.h" |
| #include "lldb/Core/ConstString.h" |
| #include "lldb/Core/DataExtractor.h" |
| #include "lldb/Core/Stream.h" |
| #include "lldb/Core/Value.h" |
| #include "lldb/Core/ValueObjectConstResult.h" |
| #include "lldb/Target/ExecutionContext.h" |
| #include "lldb/Target/Process.h" |
| |
| using namespace lldb_private; |
| using namespace clang; |
| |
| const char *g_clang_expression_variable_kind_name = "ClangExpressionVariable"; |
| |
| ClangExpressionVariable::ClangExpressionVariable(ExecutionContextScope *exe_scope, lldb::ByteOrder byte_order, uint32_t addr_byte_size) : |
| ExpressionVariable(LLVMCastKind::eKindClang), |
| m_parser_vars(), |
| m_jit_vars () |
| { |
| m_flags = EVNone; |
| m_frozen_sp = ValueObjectConstResult::Create (exe_scope, byte_order, addr_byte_size); |
| } |
| |
| ClangExpressionVariable::ClangExpressionVariable (ExecutionContextScope *exe_scope, |
| Value &value, |
| const ConstString &name, |
| uint16_t flags) : |
| ExpressionVariable(LLVMCastKind::eKindClang), |
| m_parser_vars(), |
| m_jit_vars () |
| { |
| m_flags = flags; |
| m_frozen_sp = ValueObjectConstResult::Create (exe_scope, value, name); |
| } |
| |
| ClangExpressionVariable::ClangExpressionVariable (const lldb::ValueObjectSP &valobj_sp) : |
| ExpressionVariable(LLVMCastKind::eKindClang), |
| m_parser_vars(), |
| m_jit_vars () |
| { |
| m_flags = EVNone; |
| m_frozen_sp = valobj_sp; |
| } |
| |
| ClangExpressionVariable::ClangExpressionVariable(ExecutionContextScope *exe_scope, |
| const ConstString &name, |
| const TypeFromUser& user_type, |
| lldb::ByteOrder byte_order, |
| uint32_t addr_byte_size) : |
| ExpressionVariable(LLVMCastKind::eKindClang), |
| m_parser_vars(), |
| m_jit_vars() |
| { |
| m_flags = EVNone; |
| m_frozen_sp = ValueObjectConstResult::Create (exe_scope, byte_order, addr_byte_size); |
| SetName (name); |
| SetCompilerType (user_type); |
| } |
| |
| TypeFromUser |
| ClangExpressionVariable::GetTypeFromUser() |
| { |
| TypeFromUser tfu (m_frozen_sp->GetCompilerType()); |
| return tfu; |
| } |