1//===- NativeExeSymbol.h - native impl for PDBSymbolExe ---------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVEEXESYMBOL_H 10#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEEXESYMBOL_H 11 12#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" 13#include "llvm/DebugInfo/PDB/Native/NativeSession.h" 14 15namespace llvm { 16namespace pdb { 17 18class DbiStream; 19 20class NativeExeSymbol : public NativeRawSymbol { 21 // EXE symbol is the authority on the various symbol types. 22 DbiStream *Dbi = nullptr; 23 24public: 25 NativeExeSymbol(NativeSession &Session, SymIndexId Id); 26 27 std::unique_ptr<IPDBEnumSymbols> 28 findChildren(PDB_SymType Type) const override; 29 30 uint32_t getAge() const override; 31 std::string getSymbolsFileName() const override; 32 codeview::GUID getGuid() const override; 33 bool hasCTypes() const override; 34 bool hasPrivateSymbols() const override; 35}; 36 37} // namespace pdb 38} // namespace llvm 39 40#endif 41