Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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
 
17
namespace llvm {
18
namespace pdb {
19
 
20
class NativeSession;
21
 
22
class NativeInlineSiteSymbol : public NativeRawSymbol {
23
public:
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
 
37
private:
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