Line data Source code
1 : //===- MsfError.h - Error extensions for Msf Files --------------*- 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_MSF_MSFERROR_H
11 : #define LLVM_DEBUGINFO_MSF_MSFERROR_H
12 :
13 : #include "llvm/Support/Error.h"
14 :
15 : #include <string>
16 :
17 : namespace llvm {
18 : namespace msf {
19 : enum class msf_error_code {
20 : unspecified = 1,
21 : insufficient_buffer,
22 : not_writable,
23 : no_stream,
24 : invalid_format,
25 : block_in_use
26 : };
27 :
28 : /// Base class for errors originating when parsing raw PDB files
29 9 : class MsfError : public ErrorInfo<MsfError> {
30 : public:
31 : static char ID;
32 : MsfError(msf_error_code C);
33 : MsfError(const std::string &Context);
34 : MsfError(msf_error_code C, const std::string &Context);
35 :
36 : void log(raw_ostream &OS) const override;
37 : const std::string &getErrorMessage() const;
38 : std::error_code convertToErrorCode() const override;
39 :
40 : private:
41 : std::string ErrMsg;
42 : msf_error_code Code;
43 : };
44 : } // namespace msf
45 : } // namespace llvm
46 :
47 : #endif // LLVM_DEBUGINFO_MSF_MSFERROR_H
|