From f501265f976a745e5c0d21104635d695227171cd Mon Sep 17 00:00:00 2001 From: Andreas Ericsson Date: Sat, 22 Nov 2008 14:40:51 +0100 Subject: [PATCH] Add cc-compat.h - C compiler compat macros for internal use Holds things such as FLEX_ARRAY and whatnot. Signed-off-by: Andreas Ericsson Signed-off-by: Shawn O. Pearce --- src/cc-compat.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/cc-compat.h diff --git a/src/cc-compat.h b/src/cc-compat.h new file mode 100644 index 000000000..41fb16c71 --- /dev/null +++ b/src/cc-compat.h @@ -0,0 +1,33 @@ +/* + * cc-compat.h - C compiler compat macros for internal use + */ +#ifndef INCLUDE_compat_h__ +#define INCLUDE_compat_h__ + +/* + * See if our compiler is known to support flexible array members. + */ +#ifndef FLEX_ARRAY +# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +# define FLEX_ARRAY /* empty */ +# elif defined(__GNUC__) +# if (__GNUC__ >= 3) +# define FLEX_ARRAY /* empty */ +# else +# define FLEX_ARRAY 0 /* older GNU extension */ +# endif +# endif + +/* Default to safer but a bit wasteful traditional style */ +# ifndef GIT_FLEX_ARRAY +# define GIT_FLEX_ARRAY 1 +# endif +#endif + +#ifdef __GNUC__ +# define TYPEOF(x) (__typeof__(x)) +#else +# define TYPEOF(x) +#endif + +#endif /* INCLUDE_compat_h__ */