Line data Source code
1 : //===- MSFError.cpp - 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 : #include "llvm/DebugInfo/MSF/MSFError.h"
11 : #include "llvm/Support/ErrorHandling.h"
12 : #include "llvm/Support/ManagedStatic.h"
13 :
14 : using namespace llvm;
15 : using namespace llvm::msf;
16 :
17 : // FIXME: This class is only here to support the transition to llvm::Error. It
18 : // will be removed once this transition is complete. Clients should prefer to
19 : // deal with the Error value directly, rather than converting to error_code.
20 2 : class MSFErrorCategory : public std::error_category {
21 : public:
22 0 : const char *name() const noexcept override { return "llvm.msf"; }
23 5 : std::string message(int Condition) const override {
24 5 : switch (static_cast<msf_error_code>(Condition)) {
25 : case msf_error_code::unspecified:
26 1 : return "An unknown error has occurred.";
27 : case msf_error_code::insufficient_buffer:
28 : return "The buffer is not large enough to read the requested number of "
29 0 : "bytes.";
30 : case msf_error_code::not_writable:
31 0 : return "The specified stream is not writable.";
32 : case msf_error_code::no_stream:
33 0 : return "The specified stream does not exist.";
34 : case msf_error_code::invalid_format:
35 4 : return "The data is in an unexpected format.";
36 : case msf_error_code::block_in_use:
37 0 : return "The block is already in use.";
38 : }
39 0 : llvm_unreachable("Unrecognized msf_error_code");
40 : }
41 : };
42 :
43 : static llvm::ManagedStatic<MSFErrorCategory> MSFCategory;
44 5 : const std::error_category &llvm::msf::MSFErrCategory() { return *MSFCategory; }
45 :
46 : char MSFError::ID;
|