1 //===- Error.h - system_error extensions for obj2yaml -----------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef LLVM_TOOLS_ERROR_H
11 #define LLVM_TOOLS_ERROR_H
13 #include "llvm/Support/system_error.h"
17 const error_category &obj2yaml_category();
19 struct obj2yaml_error {
23 unrecognized_file_format,
24 unsupported_obj_file_format
28 obj2yaml_error(_ v) : v_(v) {}
29 explicit obj2yaml_error(int v) : v_(_(v)) {}
30 operator int() const {return v_;}
33 inline error_code make_error_code(obj2yaml_error e) {
34 return error_code(static_cast<int>(e), obj2yaml_category());
37 template <> struct is_error_code_enum<obj2yaml_error> : std::true_type { };
38 template <> struct is_error_code_enum<obj2yaml_error::_> : std::true_type { };