diff options
| author | Tilka <tilkax@gmail.com> | 2021-06-04 02:57:50 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-04 02:57:50 +0100 |
| commit | bd7c5bd7424aa71ef619ef0c2f53140544b877da (patch) | |
| tree | f3fa16210a9415f751bf8bad652dd06bb5b24cab /Source | |
| parent | 4363f9d4c7cb2a4192380860ddf3127a230f9352 (diff) | |
| parent | 4ce22c093c8871b0cbfe3c83e3106f353cb0a088 (diff) | |
Merge pull request #9778 from shuffle2/msvc-wa
msvc: remove workarounds for old compiler issues
Diffstat (limited to 'Source')
| -rw-r--r-- | Source/Core/Common/BitField.h | 10 | ||||
| -rw-r--r-- | Source/Core/Common/FloatUtils.h | 29 |
2 files changed, 0 insertions, 39 deletions
diff --git a/Source/Core/Common/BitField.h b/Source/Core/Common/BitField.h index b3a3a41cbc..0a26ea3685 100644 --- a/Source/Core/Common/BitField.h +++ b/Source/Core/Common/BitField.h @@ -134,10 +134,6 @@ public: // so that we can use this within unions constexpr BitField() = default; -// Visual Studio (as of VS2017) considers BitField to not be trivially -// copyable if we delete this copy assignment operator. -// https://developercommunity.visualstudio.com/content/problem/101208/c-compiler-is-overly-strict-regarding-whether-a-cl.html -#ifndef _MSC_VER // We explicitly delete the copy assignment operator here, because the // default copy assignment would copy the full storage value, rather than // just the bits relevant to this particular bit field. @@ -145,7 +141,6 @@ public: // relevant bits, but we're prevented from doing that because the savestate // code expects that this class is trivially copyable. BitField& operator=(const BitField&) = delete; -#endif DOLPHIN_FORCE_INLINE BitField& operator=(T val) { @@ -241,10 +236,6 @@ public: // so that we can use this within unions constexpr BitFieldArray() = default; -// Visual Studio (as of VS2017) considers BitField to not be trivially -// copyable if we delete this copy assignment operator. -// https://developercommunity.visualstudio.com/content/problem/101208/c-compiler-is-overly-strict-regarding-whether-a-cl.html -#ifndef _MSC_VER // We explicitly delete the copy assignment operator here, because the // default copy assignment would copy the full storage value, rather than // just the bits relevant to this particular bit field. @@ -252,7 +243,6 @@ public: // relevant bits, but we're prevented from doing that because the savestate // code expects that this class is trivially copyable. BitFieldArray& operator=(const BitFieldArray&) = delete; -#endif public: constexpr std::size_t StartBit() const { return position; } diff --git a/Source/Core/Common/FloatUtils.h b/Source/Core/Common/FloatUtils.h index d7657b941a..7fca042ace 100644 --- a/Source/Core/Common/FloatUtils.h +++ b/Source/Core/Common/FloatUtils.h @@ -10,18 +10,6 @@ #include "Common/BitUtils.h" #include "Common/CommonTypes.h" -#ifdef _MSC_VER - -// MSVC needs a workaround, because its std::numeric_limits<double>::signaling_NaN() -// will use __builtin_nans, which is improperly handled by the compiler and generates -// a bad constant. Here we go back to the version MSVC used before the builtin. -// TODO: Remove this and use numeric_limits directly whenever this bug is fixed. -// See Visual Studio bug # 128935 "std::numeric_limits<float>::signaling_NaN() is broken" - -#include <ymath.h> - -#endif // _MSC_VER - namespace Common { template <typename T> @@ -30,23 +18,6 @@ constexpr T SNANConstant() return std::numeric_limits<T>::signaling_NaN(); } -#ifdef _MSC_VER - -// See workaround note above. - -template <> -constexpr double SNANConstant() -{ - return (_CSTD _Snan._Double); -} -template <> -constexpr float SNANConstant() -{ - return (_CSTD _Snan._Float); -} - -#endif // _MSC_VER - // The most significant bit of the fraction is an is-quiet bit on all architectures we care about. enum : u64 { |
