util: enforce unreachable()'s argument being a literal string
authorEric Engestrom <eric@igalia.com>
Mon, 17 Apr 2023 12:20:28 +0000 (13:20 +0100)
committerMarge Bot <emma+marge@anholt.net>
Tue, 18 Apr 2023 13:59:55 +0000 (13:59 +0000)
This prevents the bugs fixed in the previous commits.

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22529>

src/util/macros.h

index 580fc8d..d79848a 100644 (file)
 #if defined(HAVE___BUILTIN_UNREACHABLE) || __has_builtin(__builtin_unreachable)
 #define unreachable(str)    \
 do {                        \
-   assert(!str);            \
+   assert(!"" str);         \
    __builtin_unreachable(); \
 } while (0)
 #elif defined (_MSC_VER)
 #define unreachable(str)    \
 do {                        \
-   assert(!str);            \
+   assert(!"" str);         \
    __assume(0);             \
 } while (0)
 #else
-#define unreachable(str) assert(!str)
+#define unreachable(str) assert(!"" str)
 #endif
 
 /**