brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 979e45a Raw
42 lines · cpp
1//===-- MemoryRegionInfo.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 "lldb/Target/MemoryRegionInfo.h"10 11using namespace lldb_private;12 13llvm::raw_ostream &lldb_private::operator<<(llvm::raw_ostream &OS,14                                            const MemoryRegionInfo &Info) {15  return OS << llvm::formatv("MemoryRegionInfo([{0}, {1}), {2:r}{3:w}{4:x}, "16                             "{5}, `{6}`, {7}, {8}, {9}, {10}, {11})",17                             Info.GetRange().GetRangeBase(),18                             Info.GetRange().GetRangeEnd(), Info.GetReadable(),19                             Info.GetWritable(), Info.GetExecutable(),20                             Info.GetMapped(), Info.GetName(), Info.GetFlash(),21                             Info.GetBlocksize(), Info.GetMemoryTagged(),22                             Info.IsStackMemory(), Info.IsShadowStack());23}24 25void llvm::format_provider<MemoryRegionInfo::OptionalBool>::format(26    const MemoryRegionInfo::OptionalBool &B, raw_ostream &OS,27    StringRef Options) {28  assert(Options.size() <= 1);29  bool Empty = Options.empty();30  switch (B) {31  case lldb_private::MemoryRegionInfo::eNo:32    OS << (Empty ? "no" : "-");33    return;34  case lldb_private::MemoryRegionInfo::eYes:35    OS << (Empty ? "yes" : Options);36    return;37  case lldb_private::MemoryRegionInfo::eDontKnow:38    OS << (Empty ? "don't know" : "?");39    return;40  }41}42