diff options
| author | 2019-11-13 14:41:24 -0500 | |
|---|---|---|
| committer | 2019-11-15 07:09:30 -0500 | |
| commit | 14581e4a59cfe983cae397850a091d866eee045c (patch) | |
| tree | ce5a3ec2f5c04971f7512496e9fef8a4461ae51f /src/common/bit_field.h | |
| parent | Merge pull request #3103 from lioncash/cfunc (diff) | |
| download | yuzu-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.h | 5 |
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 | /** |