1//===- NativeInlineSiteSymbol.h - info about inline sites -------*- 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_NATIVEINLINESITESYMBOL_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEINLINESITESYMBOL_H
11
12#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
13#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
14#include "llvm/DebugInfo/PDB/Native/NativeRawSymbol.h"
15#include "llvm/DebugInfo/PDB/PDBTypes.h"
16
17namespace llvm {
18namespace pdb {
19
20class NativeSession;
21
22class NativeInlineSiteSymbol : public NativeRawSymbol {
23public:
24 NativeInlineSiteSymbol(NativeSession &Session, SymIndexId Id,
25 const codeview::InlineSiteSym &Sym,
26 uint64_t ParentAddr);
27
28 ~NativeInlineSiteSymbol() override;
29
30 void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
31 PdbSymbolIdField RecurseIdFields) const override;
32
33 std::string getName() const override;
34 std::unique_ptr<IPDBEnumLineNumbers>
35 findInlineeLinesByVA(uint64_t VA, uint32_t Length) const override;
36
37private:
38 const codeview::InlineSiteSym Sym;
39 uint64_t ParentAddr;
40
41 void getLineOffset(uint32_t OffsetInFunc, uint32_t &LineOffset,
42 uint32_t &FileOffset) const;
43};
44
45} // namespace pdb
46} // namespace llvm
47
48#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVEINLINESITESYMBOL_H
49

source code of llvm/include/llvm/DebugInfo/PDB/Native/NativeInlineSiteSymbol.h