From a9623d5f550c8fc63f436a40f43bfbf539ac0853 Mon Sep 17 00:00:00 2001 From: Liam Date: Sun, 2 Apr 2023 19:02:04 -0400 Subject: general: fixes for gcc 13 --- src/CMakeLists.txt | 11 +++++++++++ src/common/intrusive_red_black_tree.h | 8 -------- src/common/typed_address.h | 5 ----- src/core/internal_network/socket_proxy.h | 3 --- src/core/internal_network/sockets.h | 13 ++----------- src/web_service/verify_login.cpp | 2 +- 6 files changed, 14 insertions(+), 28 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0eca8e90e..312a49f42 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -126,6 +126,17 @@ else() add_compile_options("-stdlib=libc++") endif() + # GCC bugs + if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + # These diagnostics would be great if they worked, but are just completely broken + # and produce bogus errors on external libraries like fmt. + add_compile_options( + -Wno-array-bounds + -Wno-stringop-overread + -Wno-stringop-overflow + ) + endif() + # Set file offset size to 64 bits. # # On modern Unixes, this is typically already the case. The lone exception is diff --git a/src/common/intrusive_red_black_tree.h b/src/common/intrusive_red_black_tree.h index 5f6b34e82..bc2940fa0 100644 --- a/src/common/intrusive_red_black_tree.h +++ b/src/common/intrusive_red_black_tree.h @@ -96,10 +96,6 @@ public: return m_node == rhs.m_node; } - constexpr bool operator!=(const Iterator& rhs) const { - return !(*this == rhs); - } - constexpr pointer operator->() const { return m_node; } @@ -324,10 +320,6 @@ public: return m_impl == rhs.m_impl; } - constexpr bool operator!=(const Iterator& rhs) const { - return !(*this == rhs); - } - constexpr pointer operator->() const { return Traits::GetParent(std::addressof(*m_impl)); } diff --git a/src/common/typed_address.h b/src/common/typed_address.h index cf7bbeae1..64f4a07c2 100644 --- a/src/common/typed_address.h +++ b/src/common/typed_address.h @@ -116,7 +116,6 @@ public: // Comparison operators. constexpr bool operator==(const TypedAddress&) const = default; - constexpr bool operator!=(const TypedAddress&) const = default; constexpr auto operator<=>(const TypedAddress&) const = default; // For convenience, also define comparison operators versus uint64_t. @@ -124,10 +123,6 @@ public: return m_address == rhs; } - constexpr inline bool operator!=(uint64_t rhs) const { - return m_address != rhs; - } - // Allow getting the address explicitly, for use in accessors. constexpr inline uint64_t GetValue() const { return m_address; diff --git a/src/core/internal_network/socket_proxy.h b/src/core/internal_network/socket_proxy.h index 9421492bc..6e991fa38 100644 --- a/src/core/internal_network/socket_proxy.h +++ b/src/core/internal_network/socket_proxy.h @@ -16,9 +16,6 @@ namespace Network { class ProxySocket : public SocketBase { public: - YUZU_NON_COPYABLE(ProxySocket); - YUZU_NON_MOVEABLE(ProxySocket); - explicit ProxySocket(RoomNetwork& room_network_) noexcept; ~ProxySocket() override; diff --git a/src/core/internal_network/sockets.h b/src/core/internal_network/sockets.h index 4c7489258..11e479e50 100644 --- a/src/core/internal_network/sockets.h +++ b/src/core/internal_network/sockets.h @@ -36,13 +36,10 @@ public: SocketBase() = default; explicit SocketBase(SOCKET fd_) : fd{fd_} {} - virtual ~SocketBase() = default; - virtual SocketBase& operator=(const SocketBase&) = delete; - - // Avoid closing sockets implicitly - virtual SocketBase& operator=(SocketBase&&) noexcept = delete; + YUZU_NON_COPYABLE(SocketBase); + YUZU_NON_MOVEABLE(SocketBase); virtual Errno Initialize(Domain domain, Type type, Protocol protocol) = 0; @@ -109,14 +106,8 @@ public: ~Socket() override; - Socket(const Socket&) = delete; - Socket& operator=(const Socket&) = delete; - Socket(Socket&& rhs) noexcept; - // Avoid closing sockets implicitly - Socket& operator=(Socket&&) noexcept = delete; - Errno Initialize(Domain domain, Type type, Protocol protocol) override; Errno Close() override; diff --git a/src/web_service/verify_login.cpp b/src/web_service/verify_login.cpp index 050080278..d5b7161cb 100644 --- a/src/web_service/verify_login.cpp +++ b/src/web_service/verify_login.cpp @@ -21,7 +21,7 @@ bool VerifyLogin(const std::string& host, const std::string& username, const std return username.empty(); } - return username == *iter; + return *iter == username; } } // namespace WebService -- cgit v1.2.3