mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Don't convert object_error's enum to and from int.
This allows the compiler to see the enum and warn about it. While in here, fix a switch to not use a default and fix style violations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184186 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
+11
-11
@@ -22,17 +22,16 @@ namespace object {
|
||||
const error_category &object_category();
|
||||
|
||||
struct object_error {
|
||||
enum _ {
|
||||
success = 0,
|
||||
invalid_file_type,
|
||||
parse_failed,
|
||||
unexpected_eof
|
||||
};
|
||||
_ v_;
|
||||
enum Impl {
|
||||
success = 0,
|
||||
invalid_file_type,
|
||||
parse_failed,
|
||||
unexpected_eof
|
||||
};
|
||||
Impl V;
|
||||
|
||||
object_error(_ v) : v_(v) {}
|
||||
explicit object_error(int v) : v_(_(v)) {}
|
||||
operator int() const {return v_;}
|
||||
object_error(Impl V) : V(V) {}
|
||||
operator Impl() const { return V; }
|
||||
};
|
||||
|
||||
inline error_code make_error_code(object_error e) {
|
||||
@@ -43,7 +42,8 @@ inline error_code make_error_code(object_error e) {
|
||||
|
||||
template <> struct is_error_code_enum<object::object_error> : true_type { };
|
||||
|
||||
template <> struct is_error_code_enum<object::object_error::_> : true_type { };
|
||||
template <> struct is_error_code_enum<object::object_error::Impl> : true_type {
|
||||
};
|
||||
|
||||
} // end namespace llvm.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user