Use ADDITIONAL_HEADER_DIRS in all LLVM CMake projects.
[oota-llvm.git] / lib / DebugInfo / PDB / PDBSymbolThunk.cpp
1 //===- PDBSymbolThunk.cpp - -------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include <utility>
11
12 #include "llvm/DebugInfo/PDB/PDBSymbol.h"
13 #include "llvm/DebugInfo/PDB/PDBSymbolThunk.h"
14
15 #include "llvm/Support/Format.h"
16
17 using namespace llvm;
18
19 PDBSymbolThunk::PDBSymbolThunk(const IPDBSession &PDBSession,
20                                std::unique_ptr<IPDBRawSymbol> Symbol)
21     : PDBSymbol(PDBSession, std::move(Symbol)) {}
22
23 void PDBSymbolThunk::dump(raw_ostream &OS, int Indent,
24                           PDB_DumpLevel Level) const {
25   if (Level == PDB_DumpLevel::Compact) {
26     OS.indent(Indent);
27     PDB_ThunkOrdinal Ordinal = getThunkOrdinal();
28     OS << "THUNK[" << Ordinal << "] ";
29     OS << "[" << format_hex(getRelativeVirtualAddress(), 10);
30     if (Ordinal == PDB_ThunkOrdinal::TrampIncremental)
31       OS << " -> " << format_hex(getTargetRelativeVirtualAddress(), 10);
32     OS << "] ";
33     std::string Name = getName();
34     if (!Name.empty())
35       OS << Name;
36     OS << "\n";
37   }
38 }