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
//===- NativeFunctionSymbol.h - info about function symbols -----*- 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_NATIVEFUNCTIONSYMBOL_H
10
#define LLVM_DEBUGINFO_PDB_NATIVE_NATIVEFUNCTIONSYMBOL_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
class raw_ostream;
19
namespace pdb {
20
 
21
class NativeSession;
22
 
23
class NativeFunctionSymbol : public NativeRawSymbol {
24
public:
25
  NativeFunctionSymbol(NativeSession &Session, SymIndexId Id,
26
                       const codeview::ProcSym &Sym, uint32_t RecordOffset);
27
 
28
  ~NativeFunctionSymbol() override;
29
 
30
  void dump(raw_ostream &OS, int Indent, PdbSymbolIdField ShowIdFields,
31
            PdbSymbolIdField RecurseIdFields) const override;
32
 
33
  uint32_t getAddressOffset() const override;
34
  uint32_t getAddressSection() const override;
35
  std::string getName() const override;
36
  uint64_t getLength() const override;
37
  uint32_t getRelativeVirtualAddress() const override;
38
  uint64_t getVirtualAddress() const override;
39
  std::unique_ptr<IPDBEnumSymbols>
40
  findInlineFramesByVA(uint64_t VA) const override;
41
 
42
protected:
43
  const codeview::ProcSym Sym;
44
  uint32_t RecordOffset = 0;
45
};
46
 
47
} // namespace pdb
48
} // namespace llvm
49
 
50
#endif // LLVM_DEBUGINFO_PDB_NATIVE_NATIVEFUNCTIONSYMBOL_H