1 //===- Error.cpp - system_error extensions for obj2yaml ---------*- 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 "Error.h" 11 #include "llvm/Support/ErrorHandling.h" 12 13 using namespace llvm; 14 15 namespace { 16 class _obj2yaml_error_category : public std::error_category { 17 public: 18 const char *name() const LLVM_NOEXCEPT override; 19 std::string message(int ev) const override; 20 }; 21 } // namespace 22 name() const23const char *_obj2yaml_error_category::name() const LLVM_NOEXCEPT { 24 return "obj2yaml"; 25 } 26 message(int ev) const27std::string _obj2yaml_error_category::message(int ev) const { 28 switch (static_cast<obj2yaml_error>(ev)) { 29 case obj2yaml_error::success: 30 return "Success"; 31 case obj2yaml_error::file_not_found: 32 return "No such file."; 33 case obj2yaml_error::unrecognized_file_format: 34 return "Unrecognized file type."; 35 case obj2yaml_error::unsupported_obj_file_format: 36 return "Unsupported object file format."; 37 } 38 llvm_unreachable("An enumerator of obj2yaml_error does not have a message " 39 "defined."); 40 } 41 42 namespace llvm { obj2yaml_category()43 const std::error_category &obj2yaml_category() { 44 static _obj2yaml_error_category o; 45 return o; 46 } 47 } // namespace llvm 48