Browse Source
Merge pull request #10022 from liamwhite/gcc-13
general: fixes for gcc 13
pull/15/merge
bunnei
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with
14 additions and
28 deletions
-
src/CMakeLists.txt
-
src/common/intrusive_red_black_tree.h
-
src/common/typed_address.h
-
src/core/internal_network/socket_proxy.h
-
src/core/internal_network/sockets.h
-
src/web_service/verify_login.cpp
|
|
|
@ -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 |
|
|
|
|
|
|
|
@ -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)); |
|
|
|
} |
|
|
|
|
|
|
|
@ -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; |
|
|
|
|
|
|
|
@ -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; |
|
|
|
|
|
|
|
|
|
|
|
@ -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; |
|
|
|
|
|
|
|
@ -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
|