1 //===- PDBSymbolCustom.h - compiler-specific types --------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H
11 #define LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H
13 #include "llvm/ADT/SmallVector.h"
15 #include "PDBSymbol.h"
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 {
27 PDBSymbolCustom(const IPDBSession &PDBSession,
28 std::unique_ptr<IPDBRawSymbol> CustomSymbol);
30 DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Custom)
32 void dump(raw_ostream &OS, int Indent, PDB_DumpLevel Level) const override;
34 void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes);
35 FORWARD_SYMBOL_METHOD(getSymIndexId)
40 #endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H