xref: /freebsd/contrib/llvm-project/llvm/lib/DebugInfo/PDB/IPDBSourceFile.cpp (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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  
17  using namespace llvm;
18  using namespace llvm::pdb;
19  
20  IPDBSourceFile::~IPDBSourceFile() = default;
21  
22  void 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