1//===-- Generic.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//===---------------------------------------------------------------------===//
8
9#include "Generic.h"
10#include "LibStdcpp.h"
11#include "MsvcStl.h"
12
13lldb::ValueObjectSP lldb_private::formatters::GetDesugaredSmartPointerValue(
14 ValueObject &ptr, ValueObject &container) {
15 auto container_type = container.GetCompilerType().GetNonReferenceType();
16 if (!container_type)
17 return nullptr;
18
19 auto arg = container_type.GetTypeTemplateArgument(idx: 0);
20 if (!arg)
21 // If there isn't enough debug info, use the pointer type as is
22 return ptr.GetSP();
23
24 return ptr.Cast(compiler_type: arg.GetPointerType());
25}
26

source code of lldb/source/Plugins/Language/CPlusPlus/Generic.cpp