Coverage Report

Created: 2019-07-24 05:18

/Users/buildslave/jenkins/workspace/clang-stage2-coverage-R/llvm/include/llvm/Support/BinaryStreamError.h
Line
Count
Source (jump to first uncovered line)
1
//===- BinaryStreamError.h - Error extensions for Binary Streams *- 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_SUPPORT_BINARYSTREAMERROR_H
10
#define LLVM_SUPPORT_BINARYSTREAMERROR_H
11
12
#include "llvm/ADT/StringRef.h"
13
#include "llvm/Support/Error.h"
14
15
#include <string>
16
17
namespace llvm {
18
enum class stream_error_code {
19
  unspecified,
20
  stream_too_short,
21
  invalid_array_size,
22
  invalid_offset,
23
  filesystem_error
24
};
25
26
/// Base class for errors originating when parsing raw PDB files
27
class BinaryStreamError : public ErrorInfo<BinaryStreamError> {
28
public:
29
  static char ID;
30
  explicit BinaryStreamError(stream_error_code C);
31
  explicit BinaryStreamError(StringRef Context);
32
  BinaryStreamError(stream_error_code C, StringRef Context);
33
34
  void log(raw_ostream &OS) const override;
35
  std::error_code convertToErrorCode() const override;
36
37
  StringRef getErrorMessage() const;
38
39
0
  stream_error_code getErrorCode() const { return Code; }
40
41
private:
42
  std::string ErrMsg;
43
  stream_error_code Code;
44
};
45
} // namespace llvm
46
47
#endif // LLVM_SUPPORT_BINARYSTREAMERROR_H