summaryrefslogtreecommitdiffstats
path: root/src/util
diff options
context:
space:
mode:
authorEric Engestrom <[email protected]>2019-06-19 12:47:19 +0100
committerEric Engestrom <[email protected]>2019-07-31 09:41:05 +0100
commitabc226cf41574454c79477c217e60e8ff1fddfad (patch)
tree4c01a31ebe12a2a03bef6c7902a4d0ca400110ce /src/util
parentab9c76769ad070490434aa7104d11958e1fc49d4 (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')
-rw-r--r--src/util/half_float.c2
-rw-r--r--src/util/macros.h21
-rw-r--r--src/util/simple_mtx.h2
3 files changed, 21 insertions, 4 deletions
diff --git a/src/util/half_float.c b/src/util/half_float.c
index 422c0b69b78..5ccee81f78a 100644
--- a/src/util/half_float.c
+++ b/src/util/half_float.c
@@ -146,7 +146,7 @@ uint8_t _mesa_half_to_unorm8(uint16_t val)
{
const int m = val & 0x3ff;
const int e = (val >> 10) & 0x1f;
- MAYBE_UNUSED const int s = (val >> 15) & 0x1;
+ ASSERTED const int s = (val >> 15) & 0x1;
/* v = round_to_nearest(1.mmmmmmmmmm * 2^(e-15) * 255)
* = round_to_nearest((1.mmmmmmmmmm * 255) * 2^(e-15))
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)
diff --git a/src/util/simple_mtx.h b/src/util/simple_mtx.h
index cfb82ba56c1..94ab6fcef1f 100644
--- a/src/util/simple_mtx.h
+++ b/src/util/simple_mtx.h
@@ -61,7 +61,7 @@ typedef struct {
#define _SIMPLE_MTX_INITIALIZER_NP { 0 }
static inline void
-simple_mtx_init(simple_mtx_t *mtx, MAYBE_UNUSED int type)
+simple_mtx_init(simple_mtx_t *mtx, ASSERTED int type)
{
assert(type == mtx_plain);