LLVM  4.0.0
SymbolRecordMapping.h
Go to the documentation of this file.
1 //===- SymbolRecordMapping.h ------------------------------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORDMAPPING_H
11 #define LLVM_DEBUGINFO_CODEVIEW_SYMBOLRECORDMAPPING_H
12 
15 
16 namespace llvm {
17 namespace msf {
18 class StreamReader;
19 class StreamWriter;
20 }
21 
22 namespace codeview {
24 public:
25  explicit SymbolRecordMapping(msf::StreamReader &Reader) : IO(Reader) {}
26  explicit SymbolRecordMapping(msf::StreamWriter &Writer) : IO(Writer) {}
27 
30 
31 #define SYMBOL_RECORD(EnumName, EnumVal, Name) \
32  Error visitKnownRecord(CVSymbol &CVR, Name &Record) override;
33 #define SYMBOL_RECORD_ALIAS(EnumName, EnumVal, Name, AliasName)
34 #include "CVSymbolTypes.def"
35 
36 private:
37  Optional<SymbolKind> Kind;
38 
39  CodeViewRecordIO IO;
40 };
41 }
42 }
43 
44 #endif
SymbolRecordMapping(msf::StreamReader &Reader)
Error visitSymbolEnd(CVSymbol &Record) override
SymbolRecordMapping(msf::StreamWriter &Writer)
Lightweight error class with error context and mandatory checking.
Error visitSymbolBegin(CVSymbol &Record) override
Paired begin/end actions for all symbols.