(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
# endif
#endif
-If a pragma isn't available for your particular warning, you will need to
+If the source cannot be changed to add a pragma, you might be able to use the
+autoconf function AX_APPEND_COMPILE_FLAGS to create a new macro that disables
+the warning and then use macro for the build options for that file. For an
+example, see how the autoconf macro CFLAGS_NOIMPLICIT_FALLTHROUGH is defined and
+used.
+
+Finally, if there isn't a way to disable the specific warning, you will need to
disable all warnings for the file in question. You can do this by supplying
the autoconf macro @CFLAGS_NOERROR@ in the build options for the file. For
example:
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
afsd/afsd_kernel.c : deprecated : daemon() marked as deprecated on Darwin
-auth/ktc.c : all (ukernel) : call_syscall doesn't have a prototype
bozo/bosserver.c : deprecated : daemon() marked as deprecated on Darwin
-bucoord/ubik_db_if.c : strict-proto : Ubik_Call
-bucoord/commands.c : all : Ubik_Call
- : signed vs unsigned for dates
-butc/tcudbprocs.c : all : ubik_Call
+bucoord/ubik_db_if.c : strict-proto : ubik_Call_SingleServer
+bucoord/commands.c : all : signed vs unsigned for dates
external/heimdal/hcrypto/validate.c: all: statement with empty body
+external/heimdal/hcrypto/evp.c: cast-function-type
+ : Linux kernel build uses -Wcast-function-type
+external/heimdal/hcrypto/evp-algs.c: cast-function-type
+ : Linux kernel build uses -Wcast-function-type
+external/heimdal/krb5/crypto.c: use-after-free : False postive on certain GCC
+ compilers
kauth/admin_tools.c : strict-proto : ubik_Call
kauth/authclient.c : strict-proto : ubik_Call nonsense
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
+lwp/process.c : dangling-pointer : Ignore the legitimate use of saving
+ the address of a stack variable