Use an enum class.
authorRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Jun 2014 05:26:12 +0000 (05:26 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Tue, 3 Jun 2014 05:26:12 +0000 (05:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210078 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Object/Error.h
lib/Object/Error.cpp

index 779c747461a898224d83a2c0e53102f2e09a6ad6..5359f498b2e828981b37fa9caf6427c8c2434455 100644 (file)
@@ -21,18 +21,12 @@ namespace object {
 
 const error_category &object_category();
 
-struct object_error {
-  enum Impl {
-    success = 0,
-    arch_not_found,
-    invalid_file_type,
-    parse_failed,
-    unexpected_eof
-  };
-  Impl V;
-
-  object_error(Impl V) : V(V) {}
-  operator Impl() const { return V; }
+enum class object_error {
+  success = 0,
+  arch_not_found,
+  invalid_file_type,
+  parse_failed,
+  unexpected_eof
 };
 
 inline error_code make_error_code(object_error e) {
@@ -43,9 +37,6 @@ inline error_code make_error_code(object_error e) {
 
 template <> struct is_error_code_enum<object::object_error> : std::true_type {};
 
-template <>
-struct is_error_code_enum<object::object_error::Impl> : std::true_type {};
-
 } // end namespace llvm.
 
 #endif
index 6f72849ae2755588da8639e89a4b175dfceb0c1b..f1d0f0184d242c2f786b4c910899627954ddb174 100644 (file)
@@ -30,8 +30,8 @@ const char *_object_error_category::name() const {
   return "llvm.object";
 }
 
-std::string _object_error_category::message(int ev) const {
-  object_error::Impl E = static_cast<object_error::Impl>(ev);
+std::string _object_error_category::message(int EV) const {
+  object_error E = static_cast<object_error>(EV);
   switch (E) {
   case object_error::success: return "Success";
   case object_error::arch_not_found:
@@ -47,8 +47,8 @@ std::string _object_error_category::message(int ev) const {
                    "defined.");
 }
 
-error_condition _object_error_category::default_error_condition(int ev) const {
-  if (ev == object_error::success)
+error_condition _object_error_category::default_error_condition(int EV) const {
+  if (static_cast<object_error>(EV) == object_error::success)
     return error_condition();
   return errc::invalid_argument;
 }