1//===- PDBSymbolCustom.h - compiler-specific types --------------*- 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#ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H 11#define LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H 12 13#include "PDBSymbol.h" 14#include "PDBTypes.h" 15#include "llvm/ADT/SmallVector.h" 16 17namespace llvm { 18 19class raw_ostream; 20 21/// PDBSymbolCustom represents symbols that are compiler-specific and do not 22/// fit anywhere else in the lexical hierarchy. 23/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx 24class PDBSymbolCustom : public PDBSymbol { 25public: 26 PDBSymbolCustom(const IPDBSession &PDBSession, 27 std::unique_ptr<IPDBRawSymbol> CustomSymbol); 28 29 DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Custom) 30 31 void dump(PDBSymDumper &Dumper) const override; 32 33 void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes); 34 FORWARD_SYMBOL_METHOD(getSymIndexId) 35}; 36 37} // namespace llvm 38 39#endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H 40