summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Liam2023-04-02 19:02:04 -0400
committerGravatar Liam2023-04-02 19:02:04 -0400
commita9623d5f550c8fc63f436a40f43bfbf539ac0853 (patch)
treeb6513dfee3b8410ab61d5e9ea799e757f049a1de
parentMerge pull request #10005 from liamwhite/kernel-atomics (diff)
downloadyuzu-a9623d5f550c8fc63f436a40f43bfbf539ac0853.tar.gz
yuzu-a9623d5f550c8fc63f436a40f43bfbf539ac0853.tar.xz
yuzu-a9623d5f550c8fc63f436a40f43bfbf539ac0853.zip
general: fixes for gcc 13
-rw-r--r--src/CMakeLists.txt11
-rw-r--r--src/common/intrusive_red_black_tree.h8
-rw-r--r--src/common/typed_address.h5
-rw-r--r--src/core/internal_network/socket_proxy.h3
-rw-r--r--src/core/internal_network/sockets.h13
-rw-r--r--src/web_service/verify_login.cpp2
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()
126 add_compile_options("-stdlib=libc++") 126 add_compile_options("-stdlib=libc++")
127 endif() 127 endif()
128 128
129 # GCC bugs
130 if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "12" AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
131 # These diagnostics would be great if they worked, but are just completely broken
132 # and produce bogus errors on external libraries like fmt.
133 add_compile_options(
134 -Wno-array-bounds
135 -Wno-stringop-overread
136 -Wno-stringop-overflow
137 )
138 endif()
139
129 # Set file offset size to 64 bits. 140 # Set file offset size to 64 bits.
130 # 141 #
131 # On modern Unixes, this is typically already the case. The lone exception is 142 # 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:
96 return m_node == rhs.m_node; 96 return m_node == rhs.m_node;
97 } 97 }
98 98
99 constexpr bool operator!=(const Iterator& rhs) const {
100 return !(*this == rhs);
101 }
102
103 constexpr pointer operator->() const { 99 constexpr pointer operator->() const {
104 return m_node; 100 return m_node;
105 } 101 }
@@ -324,10 +320,6 @@ public:
324 return m_impl == rhs.m_impl; 320 return m_impl == rhs.m_impl;
325 } 321 }
326 322
327 constexpr bool operator!=(const Iterator& rhs) const {
328 return !(*this == rhs);
329 }
330
331 constexpr pointer operator->() const { 323 constexpr pointer operator->() const {
332 return Traits::GetParent(std::addressof(*m_impl)); 324 return Traits::GetParent(std::addressof(*m_impl));
333 } 325 }
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:
116 116
117 // Comparison operators. 117 // Comparison operators.
118 constexpr bool operator==(const TypedAddress&) const = default; 118 constexpr bool operator==(const TypedAddress&) const = default;
119 constexpr bool operator!=(const TypedAddress&) const = default;
120 constexpr auto operator<=>(const TypedAddress&) const = default; 119 constexpr auto operator<=>(const TypedAddress&) const = default;
121 120
122 // For convenience, also define comparison operators versus uint64_t. 121 // For convenience, also define comparison operators versus uint64_t.
@@ -124,10 +123,6 @@ public:
124 return m_address == rhs; 123 return m_address == rhs;
125 } 124 }
126 125
127 constexpr inline bool operator!=(uint64_t rhs) const {
128 return m_address != rhs;
129 }
130
131 // Allow getting the address explicitly, for use in accessors. 126 // Allow getting the address explicitly, for use in accessors.
132 constexpr inline uint64_t GetValue() const { 127 constexpr inline uint64_t GetValue() const {
133 return m_address; 128 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 {
16 16
17class ProxySocket : public SocketBase { 17class ProxySocket : public SocketBase {
18public: 18public:
19 YUZU_NON_COPYABLE(ProxySocket);
20 YUZU_NON_MOVEABLE(ProxySocket);
21
22 explicit ProxySocket(RoomNetwork& room_network_) noexcept; 19 explicit ProxySocket(RoomNetwork& room_network_) noexcept;
23 ~ProxySocket() override; 20 ~ProxySocket() override;
24 21
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:
36 36
37 SocketBase() = default; 37 SocketBase() = default;
38 explicit SocketBase(SOCKET fd_) : fd{fd_} {} 38 explicit SocketBase(SOCKET fd_) : fd{fd_} {}
39
40 virtual ~SocketBase() = default; 39 virtual ~SocketBase() = default;
41 40
42 virtual SocketBase& operator=(const SocketBase&) = delete; 41 YUZU_NON_COPYABLE(SocketBase);
43 42 YUZU_NON_MOVEABLE(SocketBase);
44 // Avoid closing sockets implicitly
45 virtual SocketBase& operator=(SocketBase&&) noexcept = delete;
46 43
47 virtual Errno Initialize(Domain domain, Type type, Protocol protocol) = 0; 44 virtual Errno Initialize(Domain domain, Type type, Protocol protocol) = 0;
48 45
@@ -109,14 +106,8 @@ public:
109 106
110 ~Socket() override; 107 ~Socket() override;
111 108
112 Socket(const Socket&) = delete;
113 Socket& operator=(const Socket&) = delete;
114
115 Socket(Socket&& rhs) noexcept; 109 Socket(Socket&& rhs) noexcept;
116 110
117 // Avoid closing sockets implicitly
118 Socket& operator=(Socket&&) noexcept = delete;
119
120 Errno Initialize(Domain domain, Type type, Protocol protocol) override; 111 Errno Initialize(Domain domain, Type type, Protocol protocol) override;
121 112
122 Errno Close() override; 113 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
21 return username.empty(); 21 return username.empty();
22 } 22 }
23 23
24 return username == *iter; 24 return *iter == username;
25} 25}
26 26
27} // namespace WebService 27} // namespace WebService