Factor out the checking of string tables.
[oota-llvm.git] / include / llvm / Object / Error.h
index 4d969393db23f756691f7ea5f8c34814263c15f8..1b0b56787c5cd34342492903b6c7c28dddd2eb70 100644 (file)
 #include <system_error>
 
 namespace llvm {
-using std::error_code;
 namespace object {
 
 const std::error_category &object_category();
 
 enum class object_error {
-  success = 0,
-  arch_not_found,
+  // Error code 0 is absent. Use std::error_code() instead.
+  arch_not_found = 1,
   invalid_file_type,
   parse_failed,
-  unexpected_eof
+  unexpected_eof,
+  string_table_non_null_end,
+  bitcode_section_not_found,
+  macho_small_load_command,
+  macho_load_segment_too_many_sections,
+  macho_load_segment_too_small,
 };
 
-inline error_code make_error_code(object_error e) {
-  return error_code(static_cast<int>(e), object_category());
+inline std::error_code make_error_code(object_error e) {
+  return std::error_code(static_cast<int>(e), object_category());
 }
 
 } // end namespace object.