1//===- IPDBSourceFile.cpp - base interface for a PDB source file ----------===//
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 "llvm/DebugInfo/PDB/IPDBSourceFile.h"
10#include "llvm/DebugInfo/PDB/PDBExtras.h"
11#include "llvm/DebugInfo/PDB/PDBTypes.h"
12#include "llvm/Support/Format.h"
13#include "llvm/Support/raw_ostream.h"
14#include <cstdint>
15#include <string>
16
17using namespace llvm;
18using namespace llvm::pdb;
19
20IPDBSourceFile::~IPDBSourceFile() = default;
21
22void IPDBSourceFile::dump(raw_ostream &OS, int Indent) const {
23  OS.indent(Indent);
24  PDB_Checksum ChecksumType = getChecksumType();
25  OS << "[";
26  if (ChecksumType != PDB_Checksum::None) {
27    OS << ChecksumType << ": ";
28    std::string Checksum = getChecksum();
29    for (uint8_t c : Checksum)
30      OS << format_hex_no_prefix(c, 2, true);
31  } else
32    OS << "No checksum";
33  OS << "] " << getFileName() << "\n";
34}
35