xref: /freebsd-src/contrib/llvm-project/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionUtil.cpp (revision 06c3fb2749bda94cb5201f81ffdb8fa6c3161b2e)
1fcaf7f86SDimitry Andric //===-- ClangExpressionUtil.cpp -------------------------------------------===//
2fcaf7f86SDimitry Andric //
3fcaf7f86SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4fcaf7f86SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5fcaf7f86SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6fcaf7f86SDimitry Andric //
7fcaf7f86SDimitry Andric //===----------------------------------------------------------------------===//
8fcaf7f86SDimitry Andric 
9fcaf7f86SDimitry Andric #include "ClangExpressionUtil.h"
10fcaf7f86SDimitry Andric 
11fcaf7f86SDimitry Andric #include "lldb/Core/ValueObject.h"
12fcaf7f86SDimitry Andric #include "lldb/Target/StackFrame.h"
13fcaf7f86SDimitry Andric #include "lldb/Utility/ConstString.h"
14fcaf7f86SDimitry Andric 
15fcaf7f86SDimitry Andric namespace lldb_private {
16fcaf7f86SDimitry Andric namespace ClangExpressionUtil {
GetLambdaValueObject(StackFrame * frame)17fcaf7f86SDimitry Andric lldb::ValueObjectSP GetLambdaValueObject(StackFrame *frame) {
18fcaf7f86SDimitry Andric   assert(frame);
19fcaf7f86SDimitry Andric 
20fcaf7f86SDimitry Andric   if (auto this_val_sp = frame->FindVariable(ConstString("this")))
21*06c3fb27SDimitry Andric     if (this_val_sp->GetChildMemberWithName("this"))
22fcaf7f86SDimitry Andric       return this_val_sp;
23fcaf7f86SDimitry Andric 
24fcaf7f86SDimitry Andric   return nullptr;
25fcaf7f86SDimitry Andric }
26fcaf7f86SDimitry Andric } // namespace ClangExpressionUtil
27fcaf7f86SDimitry Andric } // namespace lldb_private
28