LLDB mainline
ClangASTMetadata.cpp
Go to the documentation of this file.
1//===-- ClangASTMetadata.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
10#include "lldb/Utility/Stream.h"
11
12using namespace lldb_private;
13
14std::optional<bool> ClangASTMetadata::GetIsDynamicCXXType() const {
15 switch (m_is_dynamic_cxx) {
16 case 0:
17 return std::nullopt;
18 case 1:
19 return false;
20 case 2:
21 return true;
22 }
23 llvm_unreachable("Invalid m_is_dynamic_cxx value");
24}
25
26void ClangASTMetadata::SetIsDynamicCXXType(std::optional<bool> b) {
27 m_is_dynamic_cxx = b ? *b + 1 : 0;
28}
29
32
33 if (uid != LLDB_INVALID_UID) {
34 s->Printf("uid=0x%" PRIx64, uid);
35 }
36
37 uint64_t isa_ptr = GetISAPtr();
38 if (isa_ptr != 0) {
39 s->Printf("isa_ptr=0x%" PRIx64, isa_ptr);
40 }
41
42 const char *obj_ptr_name = GetObjectPtrName();
43 if (obj_ptr_name) {
44 s->Printf("obj_ptr_name=\"%s\" ", obj_ptr_name);
45 }
46
47 if (m_is_dynamic_cxx) {
48 s->Printf("is_dynamic_cxx=%i ", m_is_dynamic_cxx);
49 }
50 s->EOL();
51}
std::optional< bool > GetIsDynamicCXXType() const
const char * GetObjectPtrName() const
lldb::user_id_t GetUserID() const
void SetIsDynamicCXXType(std::optional< bool > b)
A stream class that can stream formatted output to a file.
Definition Stream.h:28
size_t Printf(const char *format,...) __attribute__((format(printf
Output printf formatted output to the stream.
Definition Stream.cpp:134
size_t EOL()
Output and End of Line character to the stream.
Definition Stream.cpp:155
#define LLDB_INVALID_UID
A class that represents a running process on the host machine.
uint64_t user_id_t
Definition lldb-types.h:82