Browse Source

Ignore a warning in _get_socket_error (-Wlogical-op).

drivers/unix/net_socket_posix.cpp: In member function 'NetSocketPosix::NetError NetSocketPosix::_get_socket_error()':
drivers/unix/net_socket_posix.cpp:197:22: warning: logical 'or' of equal expressions [-Wlogical-op]
  197 |  if (errno == EAGAIN || errno == EWOULDBLOCK)
      |                      ^

and:

modules/mono/utils/string_utils.cpp: In function 'int {anonymous}::sfind(const String&, int)':
modules/mono/utils/string_utils.cpp:68:48: error: logical 'or' of collectively exhaustive tests is always true [-Werror=logical-op]
      found = src[read_pos] == 's' || (c >= '0' || c <= '4');
                                       ~~~~~~~~~^~~~~~~~~~~
marxin 6 years ago
parent
commit
cdf54d6c5f
3 changed files with 14 additions and 3 deletions
  1. 2 2
      SConstruct
  2. 11 0
      drivers/unix/net_socket_posix.cpp
  3. 1 1
      modules/mono/utils/string_utils.cpp

+ 2 - 2
SConstruct

@@ -320,7 +320,7 @@ if selected_platform in platform_list:
 
 
         if (env["warnings"] == 'extra'):
         if (env["warnings"] == 'extra'):
             # FIXME: enable -Wclobbered once #26351 is fixed
             # FIXME: enable -Wclobbered once #26351 is fixed
-            # FIXME: enable -Wlogical-op and -Wduplicated-branches once #27594 is merged
+            # FIXME: enable -Wduplicated-branches once #27594 is merged
             # Note: enable -Wimplicit-fallthrough for Clang (already part of -Wextra for GCC)
             # Note: enable -Wimplicit-fallthrough for Clang (already part of -Wextra for GCC)
             # once we switch to C++11 or later (necessary for our FALLTHROUGH macro).
             # once we switch to C++11 or later (necessary for our FALLTHROUGH macro).
             env.Append(CCFLAGS=['-Wall', '-Wextra', '-Wno-unused-parameter']
             env.Append(CCFLAGS=['-Wall', '-Wextra', '-Wno-unused-parameter']
@@ -328,7 +328,7 @@ if selected_platform in platform_list:
             env.Append(CXXFLAGS=['-Wctor-dtor-privacy', '-Wnon-virtual-dtor'])
             env.Append(CXXFLAGS=['-Wctor-dtor-privacy', '-Wnon-virtual-dtor'])
             if methods.using_gcc(env):
             if methods.using_gcc(env):
                 env.Append(CCFLAGS=['-Wno-clobbered', '-Walloc-zero',
                 env.Append(CCFLAGS=['-Wno-clobbered', '-Walloc-zero',
-                    '-Wduplicated-cond', '-Wstringop-overflow=4'])
+                    '-Wduplicated-cond', '-Wstringop-overflow=4', '-Wlogical-op'])
                 env.Append(CXXFLAGS=['-Wnoexcept', '-Wplacement-new=1'])
                 env.Append(CXXFLAGS=['-Wnoexcept', '-Wplacement-new=1'])
                 version = methods.get_compiler_version(env)
                 version = methods.get_compiler_version(env)
                 if version != None and version[0] >= '9':
                 if version != None and version[0] >= '9':

+ 11 - 0
drivers/unix/net_socket_posix.cpp

@@ -177,6 +177,13 @@ NetSocketPosix::~NetSocketPosix() {
 	close();
 	close();
 }
 }
 
 
+// Silent a warning reported in #27594
+
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wlogical-op"
+#endif
+
 NetSocketPosix::NetError NetSocketPosix::_get_socket_error() {
 NetSocketPosix::NetError NetSocketPosix::_get_socket_error() {
 #if defined(WINDOWS_ENABLED)
 #if defined(WINDOWS_ENABLED)
 	int err = WSAGetLastError();
 	int err = WSAGetLastError();
@@ -201,6 +208,10 @@ NetSocketPosix::NetError NetSocketPosix::_get_socket_error() {
 #endif
 #endif
 }
 }
 
 
+#if defined(__GNUC__) && !defined(__clang__)
+#pragma GCC diagnostic pop
+#endif
+
 bool NetSocketPosix::_can_use_ip(const IP_Address p_ip, const bool p_for_bind) const {
 bool NetSocketPosix::_can_use_ip(const IP_Address p_ip, const bool p_for_bind) const {
 
 
 	if (p_for_bind && !(p_ip.is_valid() || p_ip.is_wildcard())) {
 	if (p_for_bind && !(p_ip.is_valid() || p_ip.is_wildcard())) {

+ 1 - 1
modules/mono/utils/string_utils.cpp

@@ -66,7 +66,7 @@ int sfind(const String &p_text, int p_from) {
 					break;
 					break;
 				case 1: {
 				case 1: {
 					CharType c = src[read_pos];
 					CharType c = src[read_pos];
-					found = src[read_pos] == 's' || (c >= '0' || c <= '4');
+					found = src[read_pos] == 's' || (c >= '0' && c <= '4');
 					break;
 					break;
 				}
 				}
 				default:
 				default: