mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-21 03:53:04 +02:00
5f7b5f80e5
Every symbol, no matter what it's tag is, supports the method getSymIndexId(). However, this was being forwarded on every concrete symbol type, so if someone had a PDBSymbol that they didn't know what type it was (or simply didn't have an instance of the concrete symbol type), they would not be able to get its index id. This patch moves the method up to PDBSymbol, so that no matter what type of object you have, you can always get its id. llvm-svn: 261153
39 lines
1.1 KiB
C++
39 lines
1.1 KiB
C++
//===- PDBSymbolCustom.h - compiler-specific types --------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H
|
|
#define LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H
|
|
|
|
#include "PDBSymbol.h"
|
|
#include "PDBTypes.h"
|
|
#include "llvm/ADT/SmallVector.h"
|
|
|
|
namespace llvm {
|
|
|
|
class raw_ostream;
|
|
|
|
/// PDBSymbolCustom represents symbols that are compiler-specific and do not
|
|
/// fit anywhere else in the lexical hierarchy.
|
|
/// https://msdn.microsoft.com/en-us/library/d88sf09h.aspx
|
|
class PDBSymbolCustom : public PDBSymbol {
|
|
public:
|
|
PDBSymbolCustom(const IPDBSession &PDBSession,
|
|
std::unique_ptr<IPDBRawSymbol> CustomSymbol);
|
|
|
|
DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::Custom)
|
|
|
|
void dump(PDBSymDumper &Dumper) const override;
|
|
|
|
void getDataBytes(llvm::SmallVector<uint8_t, 32> &bytes);
|
|
};
|
|
|
|
} // namespace llvm
|
|
|
|
#endif // LLVM_DEBUGINFO_PDB_PDBSYMBOLCUSTOM_H
|