summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2021-06-04 02:57:50 +0100
committerGitHub <noreply@github.com>2021-06-04 02:57:50 +0100
commitbd7c5bd7424aa71ef619ef0c2f53140544b877da (patch)
treef3fa16210a9415f751bf8bad652dd06bb5b24cab /Source
parent4363f9d4c7cb2a4192380860ddf3127a230f9352 (diff)
parent4ce22c093c8871b0cbfe3c83e3106f353cb0a088 (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.h10
-rw-r--r--Source/Core/Common/FloatUtils.h29
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
{