LLVM  14.0.0git
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 
14 
15 namespace llvm {
16 class BinaryStreamReader;
17 class BinaryStreamWriter;
18 
19 namespace codeview {
21 public:
23  CodeViewContainer Container)
24  : IO(Reader), Container(Container) {}
26  CodeViewContainer Container)
27  : IO(Writer), Container(Container) {}
28 
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 file implements support for optimizing divisions by a constant.
Definition: AllocatorList.h:23
llvm::BinaryStreamWriter
Provides write only access to a subclass of WritableBinaryStream.
Definition: BinaryStreamWriter.h:31
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:31
llvm::codeview::SymbolRecordMapping::SymbolRecordMapping
SymbolRecordMapping(BinaryStreamWriter &Writer, CodeViewContainer Container)
Definition: SymbolRecordMapping.h:25
CodeViewRecordIO.h
llvm::Record
Definition: Record.h:1472
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:157
llvm::codeview::SymbolRecordMapping::SymbolRecordMapping
SymbolRecordMapping(BinaryStreamReader &Reader, CodeViewContainer Container)
Definition: SymbolRecordMapping.h:22
llvm::codeview::CodeViewContainer
CodeViewContainer
Definition: CodeView.h:607