diff options
Diffstat (limited to 'prism/compiler/flex_array.h')
| -rw-r--r-- | prism/compiler/flex_array.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/prism/compiler/flex_array.h b/prism/compiler/flex_array.h new file mode 100644 index 0000000000..7504b5fdd3 --- /dev/null +++ b/prism/compiler/flex_array.h @@ -0,0 +1,19 @@ +/** + * @file compiler/flex_array.h + */ +#ifndef PRISM_COMPILER_FLEX_ARRAY_H +#define PRISM_COMPILER_FLEX_ARRAY_H + +/** + * A macro for helper define a flexible array member. C99 supports `data[]`, GCC + * supports `data[0]` as an extension, and older compilers require `data[1]`. + */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) + #define PM_FLEX_ARRAY_LENGTH /* data[] */ +#elif defined(__GNUC__) && !defined(__STRICT_ANSI__) + #define PM_FLEX_ARRAY_LENGTH 0 /* data[0] */ +#else + #define PM_FLEX_ARRAY_LENGTH 1 /* data[1] */ +#endif + +#endif |
