1*06f32e7eSjoerg //===- IPDBSourceFile.cpp - base interface for a PDB source file ----------===//
2*06f32e7eSjoerg //
3*06f32e7eSjoerg // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*06f32e7eSjoerg // See https://llvm.org/LICENSE.txt for license information.
5*06f32e7eSjoerg // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*06f32e7eSjoerg //
7*06f32e7eSjoerg //===----------------------------------------------------------------------===//
8*06f32e7eSjoerg 
9*06f32e7eSjoerg #include "llvm/DebugInfo/PDB/IPDBSourceFile.h"
10*06f32e7eSjoerg #include "llvm/DebugInfo/PDB/PDBExtras.h"
11*06f32e7eSjoerg #include "llvm/DebugInfo/PDB/PDBTypes.h"
12*06f32e7eSjoerg #include "llvm/Support/Format.h"
13*06f32e7eSjoerg #include "llvm/Support/raw_ostream.h"
14*06f32e7eSjoerg #include <cstdint>
15*06f32e7eSjoerg #include <string>
16*06f32e7eSjoerg 
17*06f32e7eSjoerg using namespace llvm;
18*06f32e7eSjoerg using namespace llvm::pdb;
19*06f32e7eSjoerg 
20*06f32e7eSjoerg IPDBSourceFile::~IPDBSourceFile() = default;
21*06f32e7eSjoerg 
dump(raw_ostream & OS,int Indent) const22*06f32e7eSjoerg void IPDBSourceFile::dump(raw_ostream &OS, int Indent) const {
23*06f32e7eSjoerg   OS.indent(Indent);
24*06f32e7eSjoerg   PDB_Checksum ChecksumType = getChecksumType();
25*06f32e7eSjoerg   OS << "[";
26*06f32e7eSjoerg   if (ChecksumType != PDB_Checksum::None) {
27*06f32e7eSjoerg     OS << ChecksumType << ": ";
28*06f32e7eSjoerg     std::string Checksum = getChecksum();
29*06f32e7eSjoerg     for (uint8_t c : Checksum)
30*06f32e7eSjoerg       OS << format_hex_no_prefix(c, 2, true);
31*06f32e7eSjoerg   } else
32*06f32e7eSjoerg     OS << "No checksum";
33*06f32e7eSjoerg   OS << "] " << getFileName() << "\n";
34*06f32e7eSjoerg }
35