26 lines · cpp
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-exception6//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(0);20 if (!arg)21 // If there isn't enough debug info, use the pointer type as is22 return ptr.GetSP();23 24 return ptr.Cast(arg.GetPointerType());25}26