1317017Sdim//===- NativeCompilandSymbol.h - native impl for compiland syms -*- C++ -*-===//
2317017Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6317017Sdim//
7317017Sdim//===----------------------------------------------------------------------===//
8317017Sdim
9317017Sdim#ifndef LLVM_DEBUGINFO_PDB_NATIVE_NATIVECOMPILANDSYMBOL_H
10317017Sdim#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVECOMPILANDSYMBOL_H
11317017Sdim
12317778Sdim#include "llvm/DebugInfo/PDB/Native/DbiModuleDescriptor.h"
13317017Sdim#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
14317017Sdim
15317017Sdimnamespace llvm {
16317017Sdimnamespace pdb {
17317017Sdim
18317017Sdimclass NativeCompilandSymbol : public NativeRawSymbol {
19317017Sdimpublic:
20320970Sdim  NativeCompilandSymbol(NativeSession &Session, SymIndexId SymbolId,
21320397Sdim                        DbiModuleDescriptor MI);
22320397Sdim
23344779Sdim  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
24344779Sdim            PdbSymbolIdField RecurseIdFields) const override;
25320397Sdim
26317017Sdim  PDB_SymType getSymTag() const override;
27317017Sdim  bool isEditAndContinueEnabled() const override;
28344779Sdim  SymIndexId getLexicalParentId() const override;
29317017Sdim  std::string getLibraryName() const override;
30317017Sdim  std::string getName() const override;
31317017Sdim
32317017Sdimprivate:
33317969Sdim  DbiModuleDescriptor Module;
34317017Sdim};
35317017Sdim
36317017Sdim} // namespace pdb
37317017Sdim} // namespace llvm
38317017Sdim
39317017Sdim#endif
40