147 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			C++
		
	
	
	
//===- PDBSymDumper.cpp - ---------------------------------------*- C++ -*-===//
 | 
						|
//
 | 
						|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
 | 
						|
// See https://llvm.org/LICENSE.txt for license information.
 | 
						|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
 | 
						|
//
 | 
						|
//===----------------------------------------------------------------------===//
 | 
						|
 | 
						|
#include "llvm/DebugInfo/PDB/PDBSymDumper.h"
 | 
						|
#include "llvm/Support/ErrorHandling.h"
 | 
						|
 | 
						|
using namespace llvm;
 | 
						|
using namespace llvm::pdb;
 | 
						|
 | 
						|
#define PDB_SYMDUMP_UNREACHABLE(Type)                                          \
 | 
						|
  if (RequireImpl)                                                             \
 | 
						|
    llvm_unreachable("Attempt to dump " #Type " with no dump implementation");
 | 
						|
 | 
						|
PDBSymDumper::PDBSymDumper(bool ShouldRequireImpl)
 | 
						|
    : RequireImpl(ShouldRequireImpl) {}
 | 
						|
 | 
						|
PDBSymDumper::~PDBSymDumper() = default;
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolAnnotation &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolAnnotation)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolBlock &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolBlock)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolCompiland &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompiland)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolCompilandDetails &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandDetails)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolCompilandEnv &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolCompilandEnv)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolCustom &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolCustom)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolData &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolData)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolExe &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolExe)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolFunc &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolFunc)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolFuncDebugEnd &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugEnd)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolFuncDebugStart &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolFuncDebugStart)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolLabel &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolLabel)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolPublicSymbol &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolPublicSymbol)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolThunk &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolThunk)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeArray &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeArray)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeBaseClass &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBaseClass)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeBuiltin &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeBuiltin)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeCustom &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeCustom)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeDimension &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeDimension)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeEnum &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeEnum)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeFriend &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFriend)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeFunctionArg &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionArg)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeFunctionSig &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeFunctionSig)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeManaged &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeManaged)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypePointer &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypePointer)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeTypedef &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeTypedef)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeUDT &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeUDT)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeVTable &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTable)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolTypeVTableShape &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolTypeVTableShape)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolUnknown &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolUnknown)
 | 
						|
}
 | 
						|
 | 
						|
void PDBSymDumper::dump(const PDBSymbolUsingNamespace &Symbol) {
 | 
						|
  PDB_SYMDUMP_UNREACHABLE(PDBSymbolUsingNamespace)
 | 
						|
}
 |