diff options
author | Eric Engestrom <[email protected]> | 2019-06-19 12:47:19 +0100 |
---|---|---|
committer | Eric Engestrom <[email protected]> | 2019-07-31 09:41:05 +0100 |
commit | abc226cf41574454c79477c217e60e8ff1fddfad (patch) | |
tree | 4c01a31ebe12a2a03bef6c7902a4d0ca400110ce /src/util/macros.h | |
parent | ab9c76769ad070490434aa7104d11958e1fc49d4 (diff) |
tree-wide: replace MAYBE_UNUSED with ASSERTED
Suggested-by: Jason Ekstrand <[email protected]>
Signed-off-by: Eric Engestrom <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
Diffstat (limited to 'src/util/macros.h')
-rw-r--r-- | src/util/macros.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/util/macros.h b/src/util/macros.h index fb0d154370a..86585f609da 100644 --- a/src/util/macros.h +++ b/src/util/macros.h @@ -230,13 +230,30 @@ do { \ # endif #endif +/** + * UNUSED marks variables (or sometimes functions) that have to be defined, + * but are sometimes (or always) unused beyond that. A common case is for + * a function parameter to be used in some build configurations but not others. + * Another case is fallback vfuncs that don't do anything with their params. + * + * Note that this should not be used for identifiers used in `assert()`; + * see ASSERTED below. + */ #ifdef HAVE_FUNC_ATTRIBUTE_UNUSED #define UNUSED __attribute__((unused)) #else #define UNUSED #endif -#define MAYBE_UNUSED UNUSED +/** + * Use ASSERTED to indicate that an identifier is unused outside of an `assert()`, + * so that assert-free builds don't get "unused variable" warnings. + */ +#ifdef NDEBUG +#define ASSERTED UNUSED +#else +#define ASSERTED +#endif #ifdef HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT #define MUST_CHECK __attribute__((warn_unused_result)) @@ -261,7 +278,7 @@ do { \ */ #define ASSERT_BITFIELD_SIZE(STRUCT, FIELD, MAXVAL) \ do { \ - MAYBE_UNUSED STRUCT s; \ + ASSERTED STRUCT s; \ s.FIELD = (MAXVAL); \ assert((int) s.FIELD == (MAXVAL) && "Insufficient bitfield size!"); \ } while (0) |