LLVM
15.0.0git
include
llvm
DebugInfo
CodeView
SymbolRecordMapping.h
Go to the documentation of this file.
1
//===- SymbolRecordMapping.h ------------------------------------*- 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_CODEVIEW_SYMBOLRECORDMAPPING_H
10
#define LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORDMAPPING_H
11
12
#include "
llvm/DebugInfo/CodeView/CodeViewRecordIO.h
"
13
#include "
llvm/DebugInfo/CodeView/SymbolVisitorCallbacks.h
"
14
15
namespace
llvm
{
16
class
BinaryStreamReader;
17
class
BinaryStreamWriter;
18
19
namespace
codeview {
20
class
SymbolRecordMapping
:
public
SymbolVisitorCallbacks
{
21
public
:
22
explicit
SymbolRecordMapping
(
BinaryStreamReader
&Reader,
23
CodeViewContainer
Container)
24
: IO(Reader), Container(Container) {}
25
explicit
SymbolRecordMapping
(
BinaryStreamWriter
&Writer,
26
CodeViewContainer
Container)
27
: IO(Writer), Container(Container) {}
28
29
Error
visitSymbolBegin
(
CVSymbol
&
Record
)
override
;
30
Error
visitSymbolEnd
(
CVSymbol
&
Record
)
override
;
31
32
#define SYMBOL_RECORD(EnumName, EnumVal, Name) \
33
Error visitKnownRecord(CVSymbol &CVR, Name &Record) override;
34
#define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
35
#include "llvm/DebugInfo/CodeView/CodeViewSymbols.def"
36
37
private
:
38
Optional<SymbolKind> Kind;
39
40
CodeViewRecordIO IO;
41
CodeViewContainer
Container;
42
};
43
}
44
}
45
46
#endif
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:
AddressRanges.h:17
llvm::BinaryStreamWriter
Provides write only access to a subclass of WritableBinaryStream.
Definition:
BinaryStreamWriter.h:30
llvm::codeview::SymbolRecordMapping
Definition:
SymbolRecordMapping.h:20
llvm::codeview::SymbolRecordMapping::visitSymbolEnd
Error visitSymbolEnd(CVSymbol &Record) override
Definition:
SymbolRecordMapping.cpp:41
SymbolVisitorCallbacks.h
llvm::codeview::SymbolVisitorCallbacks
Definition:
SymbolVisitorCallbacks.h:18
llvm::BinaryStreamReader
Provides read only access to a subclass of BinaryStream.
Definition:
BinaryStreamReader.h:29
llvm::codeview::SymbolRecordMapping::SymbolRecordMapping
SymbolRecordMapping(BinaryStreamWriter &Writer, CodeViewContainer Container)
Definition:
SymbolRecordMapping.h:25
CodeViewRecordIO.h
llvm::Record
Definition:
Record.h:1543
llvm::codeview::SymbolRecordMapping::visitSymbolBegin
Error visitSymbolBegin(CVSymbol &Record) override
Definition:
SymbolRecordMapping.cpp:36
llvm::codeview::CVRecord
CVRecord is a fat pointer (base + size pair) to a symbol or type record.
Definition:
CVRecord.h:29
llvm::Error
Lightweight error class with error context and mandatory checking.
Definition:
Error.h:155
llvm::codeview::SymbolRecordMapping::SymbolRecordMapping
SymbolRecordMapping(BinaryStreamReader &Reader, CodeViewContainer Container)
Definition:
SymbolRecordMapping.h:22
llvm::codeview::CodeViewContainer
CodeViewContainer
Definition:
CodeView.h:609
Generated on Thu Jun 30 2022 05:14:39 for LLVM by
1.8.17