vlserver: Warn when we cannot unhash deleted entry
[openafs.git] / CODING
diff --git a/CODING b/CODING
index 0881c98..bff3c92 100644 (file)
--- a/CODING
+++ b/CODING
@@ -83,7 +83,80 @@ Suggested compiler flags:
                (You might not want the -fd, it isn't really useful, just complains about the
                K&R style functions, but -v gives useful info.)
 
-\f
+Multiple line comment blocks should begin with only /* on one line and end with
+only */ on one line.
+
+Example:
+
+       /*
+        * Multiple line comment blocks should be formatted
+        * like this example.
+        */
+
+Do not use braces on one-line if and loop statements.
+
+Use:
+
+       if (some_condition)
+           do_some_action();
+       else
+           do_something_else();
+
+       while (some_condition)
+           do_something();
+
+Instead of:
+
+       if (some_condition) {
+           do_some_action();
+       }
+
+       while (some_condition) {
+           do_something();
+       }
+
+In switch statements, to fall through from one case statement to another, use
+AFS_FALLTHROUGH to mark the intentional fall through.  Do not use fall through
+comments (e.g. /* fallthrough */), as some compilers do not recognize them and
+will flag the case statement with an implied fallthrough warning.
+
+Use:
+
+    switch (x) {
+    case 1:
+        do_something();
+        AFS_FALLTHROUGH;
+    case 2:
+        do_something_else();
+        AFS_FALLTHROUGH;
+    default:
+        do_some_action();
+    }
+
+Instead of using fallthrough comments:
+
+    switch (x) {
+    case 1:
+        do_something();
+        /* fallthrough */
+    case 2:
+        do_something_else();
+        /* fallthrough */
+    default:
+        do_some_action();
+    }
+
+Or not marking the fall through:
+
+   switch (x) {
+    case 1:
+        do_something();
+    case 2:
+        do_something_else();
+    default:
+        do_some_action();
+    }
+
 Dependencies required to build OpenAFS from source
 --------------------------------------------------
 The following packages are required to build all of the OpenAFS code
@@ -244,7 +317,10 @@ If you add a new warning inhibition, please also add it to the list below.
 
 Inhibited warnings
 ------------------
-
+uss/lex.i            : fallthrough   : clang fallthrough, flex generated code
+comerr/et_lex.lex.l  : fallthrough   : clang fallthrough, flex generated code
+                                       pragma set to ignored where included in
+                                       error_table.y
 afs/afs_syscall.c    : old-style
                     : strict-proto
                     : all (ukernel) : syscall pointer issues
@@ -262,7 +338,10 @@ libadmin/kas/afs_kasAdmin.c: strict-proto : ubik_Call nonsense
 libadmin/samples/rxstat_query_peer.c : all : util_RPCStatsStateGet types
 libadmin/samples/rxstat_query_process.c : all : util_RPCStatsStateGet types
 libadmin/test/client.c : all         : util_RPCStatsStateGet types
-rxkad/ticket5.c             : all           : v5gen.c has set-but-unused variables
 ubik/ubikclient.c    : strict-protos : ubik_Call
 volser/vol-dump.c    : format        : afs_sfsize_t
-
+rxkad/ticket5.c      : format-truncation : inside included file v5der.c in the
+                                       function _heim_time2generalizedtime, the
+                                       two snprintf calls raise
+                                       format-truncation warnings due to the
+                                       arithmetic on tm_year and tm_mon fields
\ No newline at end of file