summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorMinty-Meeo <45425365+Minty-Meeo@users.noreply.github.com>2022-09-22 21:12:54 -0500
committerget <45425365+Minty-Meeo@users.noreply.github.com>2023-06-06 22:49:53 -0500
commite92f8fcbb46b49ffe83c6866d0e8f58fc9028c56 (patch)
tree77d5e32ad7679a147f6c1c0a95d7515dba9a4fca /Source/Core
parentbab3229c9827e3a21bdf98fd2d199c6f504da54d (diff)
Remove old GCC version workarounds
The minimum GCC version is now GCC 10.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Common/EnumFormatter.h5
-rw-r--r--Source/Core/Common/EnumMap.h5
-rw-r--r--Source/Core/Core/IOS/ES/Formats.cpp3
-rw-r--r--Source/Core/VideoCommon/ShaderGenCommon.h5
4 files changed, 3 insertions, 15 deletions
diff --git a/Source/Core/Common/EnumFormatter.h b/Source/Core/Common/EnumFormatter.h
index d02e5d959a..2df7399fc7 100644
--- a/Source/Core/Common/EnumFormatter.h
+++ b/Source/Core/Common/EnumFormatter.h
@@ -42,12 +42,9 @@
* constexpr formatter() : EnumFormatter(names) {}
* };
*/
-template <auto last_member, typename = decltype(last_member)>
+template <auto last_member>
class EnumFormatter
{
- // The second template argument is needed to avoid compile errors from ambiguity with multiple
- // enums with the same number of members in GCC prior to 8. See https://godbolt.org/z/xcKaW1seW
- // and https://godbolt.org/z/hz7Yqq1P5
using T = decltype(last_member);
static_assert(std::is_enum_v<T>);
diff --git a/Source/Core/Common/EnumMap.h b/Source/Core/Common/EnumMap.h
index 1418c1f01e..1eba9fe513 100644
--- a/Source/Core/Common/EnumMap.h
+++ b/Source/Core/Common/EnumMap.h
@@ -15,12 +15,9 @@ namespace Common
{
// A type that allows lookup of values associated with an enum as the key.
// Designed for enums whose numeric values start at 0 and increment continuously with few gaps.
-template <typename V, auto last_member, typename = decltype(last_member)>
+template <typename V, auto last_member>
class EnumMap final
{
- // The third template argument is needed to avoid compile errors from ambiguity with multiple
- // enums with the same number of members in GCC prior to 8. See https://godbolt.org/z/xcKaW1seW
- // and https://godbolt.org/z/hz7Yqq1P5
using T = decltype(last_member);
static_assert(std::is_enum_v<T>);
static constexpr size_t s_size = static_cast<size_t>(last_member) + 1;
diff --git a/Source/Core/Core/IOS/ES/Formats.cpp b/Source/Core/Core/IOS/ES/Formats.cpp
index fe5b7d38f2..6c263e98b4 100644
--- a/Source/Core/Core/IOS/ES/Formats.cpp
+++ b/Source/Core/Core/IOS/ES/Formats.cpp
@@ -720,9 +720,6 @@ CertReader::CertReader(std::vector<u8>&& bytes) : SignedBlobReader(std::move(byt
if (!IsSignatureValid())
return;
- // XXX: in old GCC versions, capturing 'this' does not work for some lambdas. The workaround
- // is to not use auto for the parameter (even though the type is obvious).
- // This can be dropped once we require GCC 7.
using CertStructInfo = std::tuple<SignatureType, PublicKeyType, size_t>;
static constexpr std::array<CertStructInfo, 4> types{{
{SignatureType::RSA4096, PublicKeyType::RSA2048, sizeof(CertRSA4096RSA2048)},
diff --git a/Source/Core/VideoCommon/ShaderGenCommon.h b/Source/Core/VideoCommon/ShaderGenCommon.h
index acbed7bb2f..7112dd4523 100644
--- a/Source/Core/VideoCommon/ShaderGenCommon.h
+++ b/Source/Core/VideoCommon/ShaderGenCommon.h
@@ -227,14 +227,11 @@ std::string BitfieldExtract(std::string_view source)
static_cast<u32>(BitFieldT::NumBits()));
}
-template <auto last_member, typename = decltype(last_member)>
+template <auto last_member>
void WriteSwitch(ShaderCode& out, APIType ApiType, std::string_view variable,
const Common::EnumMap<std::string_view, last_member>& values, int indent,
bool break_)
{
- // The second template argument is needed to avoid compile errors from ambiguity with multiple
- // enums with the same number of members in GCC prior to 8. See https://godbolt.org/z/xcKaW1seW
- // and https://godbolt.org/z/hz7Yqq1P5
using enum_type = decltype(last_member);
// Generate a tree of if statements recursively