diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2021-07-15 14:01:02 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2021-07-15 15:15:54 +0000 |
commit | b9296725cf99696b48926270a553044522d6e344 (patch) | |
tree | 343af595083e7bec6d7deb75351cdea80691ed30 | |
parent | 086cfe4df8ab237f0cf156e95d36657250931981 (diff) | |
download | src-b9296725cf99696b48926270a553044522d6e344.tar.gz src-b9296725cf99696b48926270a553044522d6e344.zip |
Add __diagused
This can be used for variables which are only used with either
INVARIANTS or WITNESS. Without any annotation they run into dead store
warnings from cc --analyze and always annotating with __unused may hide
bad vars when it should not.
Reviewed by: kib, markj
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D31185
-rw-r--r-- | sys/sys/systm.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/sys/systm.h b/sys/sys/systm.h index 5d41c9d53c2c..8080f22266e2 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -637,6 +637,13 @@ void _gone_in_dev(device_t dev, int major, const char *msg); #endif #define gone_in(major, msg) __gone_ok(major, msg) _gone_in(major, msg) #define gone_in_dev(dev, major, msg) __gone_ok(major, msg) _gone_in_dev(dev, major, msg) + +#if defined(INVARIANTS) || defined(WITNESS) +#define __diagused +#else +#define __diagused __unused +#endif + #endif /* _KERNEL */ __NULLABILITY_PRAGMA_POP |