projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
configure: add gettid() test
[fio.git]
/
compiler
/
compiler.h
diff --git
a/compiler/compiler.h
b/compiler/compiler.h
index 40e857c004c6e4304565ad1e446b4bffaf90eb35..ddfbcc124e77ac2b1a5d7aea1640ccbc4577a331 100644
(file)
--- a/
compiler/compiler.h
+++ b/
compiler/compiler.h
@@
-1,13
+1,13
@@
#ifndef FIO_COMPILER_H
#define FIO_COMPILER_H
#ifndef FIO_COMPILER_H
#define FIO_COMPILER_H
-#if __GNUC__ >= 4
+/* IWYU pragma: begin_exports */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
#include "compiler-gcc4.h"
#include "compiler-gcc4.h"
-#elif __GNUC__ == 3
-#include "compiler-gcc3.h"
#else
#else
-#error Compiler too old, need
gcc at least gcc 3.x
+#error Compiler too old, need
at least gcc 4.1.0
#endif
#endif
+/* IWYU pragma: end_exports */
#ifndef __must_check
#define __must_check
#ifndef __must_check
#define __must_check
@@
-28,14
+28,21
@@
*/
#define typecheck(type,x) \
({ type __dummy; \
*/
#define typecheck(type,x) \
({ type __dummy; \
-
typeof
(x) __dummy2; \
+
__typeof__
(x) __dummy2; \
(void)(&__dummy == &__dummy2); \
1; \
})
(void)(&__dummy == &__dummy2); \
1; \
})
+
+#if defined(CONFIG_STATIC_ASSERT)
+#define compiletime_assert(condition, msg) _Static_assert(condition, msg)
+
+#elif !defined(CONFIG_DISABLE_OPTIMIZATIONS)
+
#ifndef __compiletime_error
#define __compiletime_error(message)
#endif
#ifndef __compiletime_error
#define __compiletime_error(message)
#endif
+
#ifndef __compiletime_error_fallback
#define __compiletime_error_fallback(condition) do { } while (0)
#endif
#ifndef __compiletime_error_fallback
#define __compiletime_error_fallback(condition) do { } while (0)
#endif
@@
-55,4
+62,15
@@
#define compiletime_assert(condition, msg) \
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
#define compiletime_assert(condition, msg) \
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
+#else
+
+#define compiletime_assert(condition, msg) do { } while (0)
+
+#endif
+
+#ifdef FIO_INTERNAL
+#define ARRAY_SIZE(x) (sizeof((x)) / (sizeof((x)[0])))
+#define FIELD_SIZE(s, f) (sizeof(((__typeof__(s))0)->f))
+#endif
+
#endif
#endif