[PATCH] pif: Add message to static_assert for C11 compliance, fix build with gcc 8
Seen with gcc 8.5:
---
In file included from passt.h:18,
from qrap.c:36:
pif.h: In function 'pif_type':
pif.h:48:44: error: expected ',' before ')' token
static_assert(sizeof("?") <= PIF_NAME_SIZE);
^
make: *** [Makefile:105: qrap] Error 1
---
As noted in ba84a3b17af8 ("treewide: Add messages to static_assert()
calls"), static_assert() calls need a message to comply with C11. The
form without message is supported starting from C23 only.
Fixes: cbcd4284111f ("pif: Limit pif names to 128 bytes")
Signed-off-by: Stefano Brivio
On Sat, Jul 18, 2026 at 09:41:34AM +0200, Stefano Brivio wrote:
Seen with gcc 8.5:
--- In file included from passt.h:18, from qrap.c:36: pif.h: In function 'pif_type': pif.h:48:44: error: expected ',' before ')' token static_assert(sizeof("?") <= PIF_NAME_SIZE); ^ make: *** [Makefile:105: qrap] Error 1 ---
As noted in ba84a3b17af8 ("treewide: Add messages to static_assert() calls"), static_assert() calls need a message to comply with C11. The form without message is supported starting from C23 only.
Fixes: cbcd4284111f ("pif: Limit pif names to 128 bytes") Signed-off-by: Stefano Brivio
Huh. Weird I didn't get a warning for this one, I've caught this same
mistake a bunch of times before because of a warning, though I forget
if it came from the compiler or one of the static checkers.
In any case,
Reviewed-by: David Gibson
--- pif.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pif.h b/pif.h index 3a1e2e5..dedcaa5 100644 --- a/pif.h +++ b/pif.h @@ -45,7 +45,7 @@ static inline const char *pif_type(enum pif_type pt) return pif_type_str[pt]; else return "?"; - static_assert(sizeof("?") <= PIF_NAME_SIZE); + static_assert(sizeof("?") <= PIF_NAME_SIZE, "PIF_NAME_SIZE too small"); }
static inline const char *pif_name(uint8_t pif) -- 2.43.0
-- David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson
On Sun, 19 Jul 2026 14:05:27 +1000
David Gibson
On Sat, Jul 18, 2026 at 09:41:34AM +0200, Stefano Brivio wrote:
Seen with gcc 8.5:
--- In file included from passt.h:18, from qrap.c:36: pif.h: In function 'pif_type': pif.h:48:44: error: expected ',' before ')' token static_assert(sizeof("?") <= PIF_NAME_SIZE); ^ make: *** [Makefile:105: qrap] Error 1 ---
As noted in ba84a3b17af8 ("treewide: Add messages to static_assert() calls"), static_assert() calls need a message to comply with C11. The form without message is supported starting from C23 only.
Fixes: cbcd4284111f ("pif: Limit pif names to 128 bytes") Signed-off-by: Stefano Brivio
Huh. Weird I didn't get a warning for this one, I've caught this same mistake a bunch of times before because of a warning, though I forget if it came from the compiler or one of the static checkers.
Same here, I didn't get a warning either, but in ba84a3b17af8 you mentioned clang-tidy reporting warnings only in some cases, so I guess that's the kind of warning you would have expected. -- Stefano
participants (2)
-
David Gibson
-
Stefano Brivio