1189251Ssam//===- NativeExeSymbol.h - native impl for PDBSymbolExe ---------*- C++ -*-===// 2214734Srpaulo// 3214734Srpaulo// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4189251Ssam// See https://llvm.org/LICENSE.txt for license information. 5189251Ssam// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6189251Ssam// 7189251Ssam//===----------------------------------------------------------------------===// 8189251Ssam 9189251Ssam#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVEEXESYMBOL_H 10189251Ssam#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEEXESYMBOL_H 11189251Ssam 12189251Ssam#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h" 13189251Ssam#include "llvm/DebugInfo/PDB/Native/NativeSession.h" 14189251Ssam 15189251Ssamnamespace llvm { 16189251Ssamnamespace pdb { 17189251Ssam 18214734Srpauloclass DbiStream; 19214734Srpaulo 20214734Srpauloclass NativeExeSymbol : public NativeRawSymbol { 21189251Ssam // EXE symbol is the authority on the various symbol types. 22214734Srpaulo DbiStream *Dbi = nullptr; 23214734Srpaulo 24214734Srpaulopublic: 25189251Ssam NativeExeSymbol(NativeSession &Session, SymIndexId Id); 26189251Ssam 27214734Srpaulo std::unique_ptr<IPDBEnumSymbols> 28214734Srpaulo findChildren(PDB_SymType Type) const override; 29214734Srpaulo 30214734Srpaulo uint32_t getAge() const override; 31214734Srpaulo std::string getSymbolsFileName() const override; 32214734Srpaulo codeview::GUID getGuid() const override; 33214734Srpaulo bool hasCTypes() const override; 34214734Srpaulo bool hasPrivateSymbols() const override; 35214734Srpaulo}; 36214734Srpaulo 37214734Srpaulo} // namespace pdb 38214734Srpaulo} // namespace llvm 39214734Srpaulo 40189251Ssam#endif 41189251Ssam