ARRAY_SIZE: check for type
[linux-2.6.git] / include / linux / compiler-gcc.h
index 9008eab..a9f7947 100644 (file)
@@ -22,6 +22,9 @@
     __asm__ ("" : "=r"(__ptr) : "0"(ptr));             \
     (typeof(ptr)) (__ptr + (off)); })
 
+/* &a[0] degrades to a pointer: a different type from an array */
+#define __must_be_array(a) \
+  BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
 
 #define inline         inline          __attribute__((always_inline))
 #define __inline__     __inline__      __attribute__((always_inline))