LLVM  9.0.0svn
IPDBSourceFile.cpp
Go to the documentation of this file.
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 
12 #include "llvm/Support/Format.h"
14 #include <cstdint>
15 #include <string>
16 
17 using namespace llvm;
18 using namespace llvm::pdb;
19 
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 }
This class represents lattice values for constants.
Definition: AllocatorList.h:23
raw_ostream & indent(unsigned NumSpaces)
indent - Insert &#39;NumSpaces&#39; spaces.
PDB_Checksum
Specifies the hash algorithm that a source file from a PDB was hashed with.
Definition: PDBTypes.h:117
void dump(raw_ostream &OS, int Indent) const
virtual std::string getChecksum() const =0
virtual PDB_Checksum getChecksumType() const =0
FormattedNumber format_hex_no_prefix(uint64_t N, unsigned Width, bool Upper=false)
format_hex_no_prefix - Output N as a fixed width hexadecimal.
Definition: Format.h:198
Definition: JSON.cpp:597
This class implements an extremely fast bulk output stream that can only output to a stream...
Definition: raw_ostream.h:45
virtual std::string getFileName() const =0