#pragma once #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #endif //===- PDBSymDumper.h - base interface for PDB symbol dumper *- 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 // //===----------------------------------------------------------------------===// #ifndef LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H #define LLVM_DEBUGINFO_PDB_PDBSYMDUMPER_H #include "PDBTypes.h" namespace llvm { class raw_ostream; namespace pdb { class PDBSymDumper { public: PDBSymDumper(bool ShouldRequireImpl); virtual ~PDBSymDumper(); virtual void dump(const PDBSymbolAnnotation &Symbol); virtual void dump(const PDBSymbolBlock &Symbol); virtual void dump(const PDBSymbolCompiland &Symbol); virtual void dump(const PDBSymbolCompilandDetails &Symbol); virtual void dump(const PDBSymbolCompilandEnv &Symbol); virtual void dump(const PDBSymbolCustom &Symbol); virtual void dump(const PDBSymbolData &Symbol); virtual void dump(const PDBSymbolExe &Symbol); virtual void dump(const PDBSymbolFunc &Symbol); virtual void dump(const PDBSymbolFuncDebugEnd &Symbol); virtual void dump(const PDBSymbolFuncDebugStart &Symbol); virtual void dump(const PDBSymbolLabel &Symbol); virtual void dump(const PDBSymbolPublicSymbol &Symbol); virtual void dump(const PDBSymbolThunk &Symbol); virtual void dump(const PDBSymbolTypeArray &Symbol); virtual void dump(const PDBSymbolTypeBaseClass &Symbol); virtual void dump(const PDBSymbolTypeBuiltin &Symbol); virtual void dump(const PDBSymbolTypeCustom &Symbol); virtual void dump(const PDBSymbolTypeDimension &Symbol); virtual void dump(const PDBSymbolTypeEnum &Symbol); virtual void dump(const PDBSymbolTypeFriend &Symbol); virtual void dump(const PDBSymbolTypeFunctionArg &Symbol); virtual void dump(const PDBSymbolTypeFunctionSig &Symbol); virtual void dump(const PDBSymbolTypeManaged &Symbol); virtual void dump(const PDBSymbolTypePointer &Symbol); virtual void dump(const PDBSymbolTypeTypedef &Symbol); virtual void dump(const PDBSymbolTypeUDT &Symbol); virtual void dump(const PDBSymbolTypeVTable &Symbol); virtual void dump(const PDBSymbolTypeVTableShape &Symbol); virtual void dump(const PDBSymbolUnknown &Symbol); virtual void dump(const PDBSymbolUsingNamespace &Symbol); virtual void dumpRight(const PDBSymbolTypeArray &Symbol) {} virtual void dumpRight(const PDBSymbolTypeBaseClass &Symbol) {} virtual void dumpRight(const PDBSymbolTypeBuiltin &Symbol) {} virtual void dumpRight(const PDBSymbolTypeCustom &Symbol) {} virtual void dumpRight(const PDBSymbolTypeDimension &Symbol) {} virtual void dumpRight(const PDBSymbolTypeEnum &Symbol) {} virtual void dumpRight(const PDBSymbolTypeFriend &Symbol) {} virtual void dumpRight(const PDBSymbolTypeFunctionArg &Symbol) {} virtual void dumpRight(const PDBSymbolTypeFunctionSig &Symbol) {} virtual void dumpRight(const PDBSymbolTypeManaged &Symbol) {} virtual void dumpRight(const PDBSymbolTypePointer &Symbol) {} virtual void dumpRight(const PDBSymbolTypeTypedef &Symbol) {} virtual void dumpRight(const PDBSymbolTypeUDT &Symbol) {} virtual void dumpRight(const PDBSymbolTypeVTable &Symbol) {} virtual void dumpRight(const PDBSymbolTypeVTableShape &Symbol) {} private: bool RequireImpl; }; } } #endif #ifdef __GNUC__ #pragma GCC diagnostic pop #endif