MINOR: compiler: introduce offsetoff().

Add a offsetof() macro, if it is no there already.
This commit is contained in:
Olivier Houchard 2018-01-24 18:17:06 +01:00 committed by Willy Tarreau
parent 25ae45a078
commit 928fbfa8b7

View File

@ -107,5 +107,23 @@
#endif
#endif
#ifndef __GNUC_PREREQ__
#if defined(__GNUC__) && !defined(__INTEL_COMPILER)
#define __GNUC_PREREQ__(ma, mi) \
(__GNUC__ > (ma) || __GNUC__ == (ma) && __GNUC_MINOR__ >= (mi))
#else
#define __GNUC_PREREQ__(ma, mi) 0
#endif
#endif
#ifndef offsetof
#if __GNUC_PREREQ__(4, 1)
#define offsetof(type, field) __builtin_offsetof(type, field)
#else
#define offsetof(type, field) \
((__size_t)(__uintptr_t)((const volatile void *)&((type *)0)->field))
#endif
#endif
#endif /* _COMMON_COMPILER_H */