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