configure: fixup clang stupidity
[fio.git] / configure
index 085f01658f06221445577505831e2030aacb8d65..a3f83d34c415e867b2a4b55dc91700d2a1a1db0e 100755 (executable)
--- a/configure
+++ b/configure
@@ -1497,9 +1497,25 @@ echo "getmntinfo                    $getmntinfo"
 static_assert="no"
 cat > $TMPC << EOF
 #include <assert.h>
+#include <stdlib.h>
+#undef offsetof
+#ifdef __compiler_offsetof
+#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
+#else
+#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
+#endif
+
+#define container_of(ptr, type, member) ({                     \
+       const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
+       (type *)( (char *)__mptr - offsetof(type,member) );})
+
+struct foo {
+  int a, b;
+};
+
 int main(int argc, char **argv)
 {
-  _Static_assert( 1 == 1 , "Check");
+  _Static_assert(offsetof(struct foo, a) == 0 , "Check");
   return 0 ;
 }
 EOF