git-compat-util.h: auto-adjust to compiler support of FLEX_ARRAY a bit better
When declaring a structure with a flexible array member, instead of defaulting to the c99 syntax for non-gnu compilers (which burned people with older compilers), default to the traditional and more portable "member[1]; /* more */" syntax. At the same time, other c99 compilers should be able to take advantage of the modern syntax to flexible array members without being gcc. Check __STDC_VERSION__ for that. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
@ -4,10 +4,24 @@
|
|||||||
#define _FILE_OFFSET_BITS 64
|
#define _FILE_OFFSET_BITS 64
|
||||||
|
|
||||||
#ifndef FLEX_ARRAY
|
#ifndef FLEX_ARRAY
|
||||||
#if defined(__GNUC__) && (__GNUC__ < 3)
|
/*
|
||||||
#define FLEX_ARRAY 0
|
* See if our compiler is known to support flexible array members.
|
||||||
#else
|
*/
|
||||||
#define FLEX_ARRAY /* empty */
|
#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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Otherwise, default to safer but a bit wasteful traditional style
|
||||||
|
*/
|
||||||
|
#ifndef FLEX_ARRAY
|
||||||
|
# define FLEX_ARRAY 1
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user