summaryrefslogtreecommitdiff
path: root/src/common/bit_field.h
diff options
context:
space:
mode:
authorGravatar Lioncash2019-11-13 14:41:24 -0500
committerGravatar Lioncash2019-11-15 07:09:30 -0500
commit14581e4a59cfe983cae397850a091d866eee045c (patch)
treece5a3ec2f5c04971f7512496e9fef8a4461ae51f /src/common/bit_field.h
parentMerge pull request #3103 from lioncash/cfunc (diff)
downloadyuzu-14581e4a59cfe983cae397850a091d866eee045c.tar.gz
yuzu-14581e4a59cfe983cae397850a091d866eee045c.tar.xz
yuzu-14581e4a59cfe983cae397850a091d866eee045c.zip
common/bit_field: Silence sign-conversion warnings
We can just use numeric_limits instead of relying on wraparound behavior here.
Diffstat (limited to 'src/common/bit_field.h')
-rw-r--r--src/common/bit_field.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/common/bit_field.h b/src/common/bit_field.h
index fd2bbbd99..2dbe37839 100644
--- a/src/common/bit_field.h
+++ b/src/common/bit_field.h
@@ -135,7 +135,8 @@ public:
135 /// Constants to allow limited introspection of fields if needed 135 /// Constants to allow limited introspection of fields if needed
136 static constexpr std::size_t position = Position; 136 static constexpr std::size_t position = Position;
137 static constexpr std::size_t bits = Bits; 137 static constexpr std::size_t bits = Bits;
138 static constexpr StorageType mask = (((StorageType)~0) >> (8 * sizeof(T) - bits)) << position; 138 static constexpr StorageType mask = StorageType(
139 (std::numeric_limits<StorageType>::max() >> (8 * sizeof(T) - bits)) << position);
139 140
140 /** 141 /**
141 * Formats a value by masking and shifting it according to the field parameters. A value 142 * Formats a value by masking and shifting it according to the field parameters. A value
@@ -143,7 +144,7 @@ public:
143 * the results together. 144 * the results together.
144 */ 145 */
145 static constexpr FORCE_INLINE StorageType FormatValue(const T& value) { 146 static constexpr FORCE_INLINE StorageType FormatValue(const T& value) {
146 return ((StorageType)value << position) & mask; 147 return (static_cast<StorageType>(value) << position) & mask;
147 } 148 }
148 149
149 /** 150 /**