brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 2c5dacb Raw
52 lines · cpp
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-exception6//7//===----------------------------------------------------------------------===//8 9#include "Plugins/ExpressionParser/Clang/ClangASTMetadata.h"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 30void ClangASTMetadata::Dump(Stream *s) {31  lldb::user_id_t uid = GetUserID();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}52