LINUX 5.3: Add comments for fallthrough switch cases 81/13881/3
authorCheyenne Wills <cwills@sinenomine.net>
Tue, 1 Oct 2019 18:14:41 +0000 (12:14 -0600)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 11 Oct 2019 03:31:40 +0000 (23:31 -0400)
With commit 6e0f1c3b45102e7644d25cf34395ca980414317f (LINUX: Honor
--enable-checking for libafs) building libafs against a linux 5.3
kernel compiles with errors due to fall through in case statements when
--enable-checking / --enable-warning is used.

e.g.
  src/opr/jhash.h:82:17: error: this statement may fall through
                                [-Werror=implicit-fallthrough=]
         case 3 : c+=k[2];
                  ~^~~~~~

The GCC compiler will disable the implicit-fallthrough check for case
statements that contain a "special" comment ( /* fall through */ ).

Add the 'fall through' comment to indicate where fall throughs are
acceptable.

This commit only adds comments and does not alter any executable code.

The -Wimplicit-fallthrough flag was enabled globally in the linux kernel
build in 5.3-rc2 (commit: a035d552a93bb9ef6048733bb9f2a0dc857ff869
Makefile: Globally enable fall-through warning)

Change-Id: Ie6ca425e04b53a22d07b415cb8afd172af7e8081
Reviewed-on: https://gerrit.openafs.org/13881
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>

src/afs/LINUX/osi_vnodeops.c
src/opr/jhash.h
src/rx/xdr.c

index dc39822..d6fa3b6 100644 (file)
@@ -2580,6 +2580,7 @@ afs_linux_can_bypass(struct inode *ip) {
        case LARGE_FILES_BYPASS_CACHE:
            if (i_size_read(ip) > cache_bypass_threshold)
                return 1;
+           /* fall through */
        default:
            return 0;
      }
index 9c82f9c..4568f56 100644 (file)
@@ -80,9 +80,12 @@ opr_jhash(const afs_uint32 *k, size_t length, afs_uint32 initval)
     /* All the case statements fall through */
     switch(length) {
       case 3 : c+=k[2];
+       /* fall through */
       case 2 : b+=k[1];
+       /* fall through */
       case 1 : a+=k[0];
        opr_jhash_final(a, b, c);
+       /* fall through */
       case 0:     /* case 0: nothing left to add */
        break;
     }
index f370723..b1efad3 100644 (file)
@@ -424,7 +424,7 @@ xdr_bytes(XDR * xdrs, char **cpp, u_int * sizep,
        if (sp == NULL) {
            return (FALSE);
        }
-       /* fall into ... */
+       /* fall through */
 
     case XDR_ENCODE:
        return (xdr_opaque(xdrs, sp, nodesize));
@@ -547,7 +547,7 @@ xdr_string(XDR * xdrs, char **cpp, u_int maxsize)
            return (FALSE);
        }
        sp[size] = 0;
-       /* fall into ... */
+       /* fall through */
 
     case XDR_ENCODE:
        return (xdr_opaque(xdrs, sp, size));