By using must_be_array(), code that calls NITEMS() or STRLEN() with
non-arrays will not compile.
Link: <https://stackoverflow.com/a/
57537491>
Cc: Christian Göttsche <cgzones@googlemail.com>
Cc: Serge Hallyn <serge@hallyn.com>
Cc: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
#include <limits.h>
+#include "must_be.h"
+
#define WIDTHOF(x) (sizeof(x) * CHAR_BIT)
-#define NITEMS(arr) (sizeof((arr)) / sizeof((arr)[0]))
+#define NITEMS(a) (sizeof((a)) / sizeof((a)[0]) + must_be_array(a))
#define STRLEN(s) (NITEMS(s) - 1)