Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / lldb / source / Plugins / ExpressionParser / Clang / ClangExpressionVariable.cpp
blobac3cb0b1bdf319b1f8165ae89830eef94cfc0a10
1 //===-- ClangExpressionVariable.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 //===----------------------------------------------------------------------===//
9 #include "ClangExpressionVariable.h"
11 #include "lldb/Core/Value.h"
12 #include "lldb/Core/ValueObjectConstResult.h"
13 #include "lldb/Target/ExecutionContext.h"
14 #include "lldb/Target/Process.h"
15 #include "lldb/Utility/ConstString.h"
16 #include "lldb/Utility/DataExtractor.h"
17 #include "lldb/Utility/Stream.h"
18 #include "clang/AST/ASTContext.h"
20 using namespace lldb_private;
21 using namespace clang;
23 char ClangExpressionVariable::ID;
25 ClangExpressionVariable::ClangExpressionVariable(
26 ExecutionContextScope *exe_scope, lldb::ByteOrder byte_order,
27 uint32_t addr_byte_size)
28 : m_parser_vars(), m_jit_vars() {
29 m_flags = EVNone;
30 m_frozen_sp =
31 ValueObjectConstResult::Create(exe_scope, byte_order, addr_byte_size);
34 ClangExpressionVariable::ClangExpressionVariable(
35 ExecutionContextScope *exe_scope, Value &value, ConstString name,
36 uint16_t flags)
37 : m_parser_vars(), m_jit_vars() {
38 m_flags = flags;
39 m_frozen_sp = ValueObjectConstResult::Create(exe_scope, value, name);
42 ClangExpressionVariable::ClangExpressionVariable(
43 const lldb::ValueObjectSP &valobj_sp)
44 : m_parser_vars(), m_jit_vars() {
45 m_flags = EVNone;
46 m_frozen_sp = valobj_sp;
49 ClangExpressionVariable::ClangExpressionVariable(
50 ExecutionContextScope *exe_scope, ConstString name,
51 const TypeFromUser &user_type, lldb::ByteOrder byte_order,
52 uint32_t addr_byte_size)
53 : m_parser_vars(), m_jit_vars() {
54 m_flags = EVNone;
55 m_frozen_sp =
56 ValueObjectConstResult::Create(exe_scope, byte_order, addr_byte_size);
57 SetName(name);
58 SetCompilerType(user_type);
61 TypeFromUser ClangExpressionVariable::GetTypeFromUser() {
62 TypeFromUser tfu(m_frozen_sp->GetCompilerType());
63 return tfu;