Module Name: src Committed By: rillig Date: Tue Jul 5 22:50:42 UTC 2022
Modified Files: src/distrib/sets/lists/tests: mi src/tests/usr.bin/xlint/lint1: Makefile src/usr.bin/xlint/lint1: Makefile Makefile.err-msgs-h README.md check-msgs.lua err.c externs1.h lint1.h main1.c makeman tree.c src/usr.bin/xlint/xlint: lint.1 xlint.c Added Files: src/tests/usr.bin/xlint/lint1: queries.c Log Message: lint: add additional queries that are not enabled by default In the last 18 months, several lint warnings have been made adjusted to allow common usage patterns. For example, lint no longer warns about a constant condition in the statement 'do { ... } while (false)' (message 161), as this pattern is well-known in statement-like macros, making it unlikely that the 'false' is a mistake. Another example is casts between unequal pointer types (message 247) for a few well-known patterns that are unlikely to be bugs. Occasionally, it is useful to query the code for patterns or events that would not justify a warning. These patterns are modeled as predefined queries that can be selected individually, in addition to and independently of the existing warnings and errors. New queries can be added as needed, in the same way as new warnings. Queries that are deemed no longer used can be deactivated in the same way as warnings that are no longer used. As long as none of the queries is enabled, they produce a minimal overhead of querying a single global variable. Computations that are more expensive than a few machine instructions should be guarded by any_query_enabled. https://mail-index.netbsd.org/source-changes-d/2022/06/28/msg013716.html ok christos@ To generate a diff of this commit: cvs rdiff -u -r1.1215 -r1.1216 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.128 -r1.129 src/tests/usr.bin/xlint/lint1/Makefile cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint1/queries.c cvs rdiff -u -r1.91 -r1.92 src/usr.bin/xlint/lint1/Makefile cvs rdiff -u -r1.3 -r1.4 src/usr.bin/xlint/lint1/Makefile.err-msgs-h cvs rdiff -u -r1.7 -r1.8 src/usr.bin/xlint/lint1/README.md cvs rdiff -u -r1.16 -r1.17 src/usr.bin/xlint/lint1/check-msgs.lua cvs rdiff -u -r1.180 -r1.181 src/usr.bin/xlint/lint1/err.c cvs rdiff -u -r1.164 -r1.165 src/usr.bin/xlint/lint1/externs1.h cvs rdiff -u -r1.155 -r1.156 src/usr.bin/xlint/lint1/lint1.h cvs rdiff -u -r1.64 -r1.65 src/usr.bin/xlint/lint1/main1.c cvs rdiff -u -r1.5 -r1.6 src/usr.bin/xlint/lint1/makeman cvs rdiff -u -r1.470 -r1.471 src/usr.bin/xlint/lint1/tree.c cvs rdiff -u -r1.53 -r1.54 src/usr.bin/xlint/xlint/lint.1 cvs rdiff -u -r1.93 -r1.94 src/usr.bin/xlint/xlint/xlint.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.