]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionVariable.cpp
Fix a memory leak in if_delgroups() introduced in r334118.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / source / Plugins / ExpressionParser / Clang / ClangExpressionVariable.cpp
1 //===-- ClangExpressionVariable.cpp -----------------------------*- C++ -*-===//
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 "ClangExpressionVariable.h"
10
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"
19
20 using namespace lldb_private;
21 using namespace clang;
22
23 ClangExpressionVariable::ClangExpressionVariable(
24     ExecutionContextScope *exe_scope, lldb::ByteOrder byte_order,
25     uint32_t addr_byte_size)
26     : ExpressionVariable(LLVMCastKind::eKindClang), m_parser_vars(),
27       m_jit_vars() {
28   m_flags = EVNone;
29   m_frozen_sp =
30       ValueObjectConstResult::Create(exe_scope, byte_order, addr_byte_size);
31 }
32
33 ClangExpressionVariable::ClangExpressionVariable(
34     ExecutionContextScope *exe_scope, Value &value, ConstString name,
35     uint16_t flags)
36     : ExpressionVariable(LLVMCastKind::eKindClang), m_parser_vars(),
37       m_jit_vars() {
38   m_flags = flags;
39   m_frozen_sp = ValueObjectConstResult::Create(exe_scope, value, name);
40 }
41
42 ClangExpressionVariable::ClangExpressionVariable(
43     const lldb::ValueObjectSP &valobj_sp)
44     : ExpressionVariable(LLVMCastKind::eKindClang), m_parser_vars(),
45       m_jit_vars() {
46   m_flags = EVNone;
47   m_frozen_sp = valobj_sp;
48 }
49
50 ClangExpressionVariable::ClangExpressionVariable(
51     ExecutionContextScope *exe_scope, ConstString name,
52     const TypeFromUser &user_type, lldb::ByteOrder byte_order,
53     uint32_t addr_byte_size)
54     : ExpressionVariable(LLVMCastKind::eKindClang), m_parser_vars(),
55       m_jit_vars() {
56   m_flags = EVNone;
57   m_frozen_sp =
58       ValueObjectConstResult::Create(exe_scope, byte_order, addr_byte_size);
59   SetName(name);
60   SetCompilerType(user_type);
61 }
62
63 TypeFromUser ClangExpressionVariable::GetTypeFromUser() {
64   TypeFromUser tfu(m_frozen_sp->GetCompilerType());
65   return tfu;
66 }