Coverage Report

Created: 2019-02-21 13:17

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/DebugInfo/CodeView/SymbolRecordMapping.h
Line
Count
Source
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
2.85k
      : 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