diff options
Diffstat (limited to 'm4/ax_emptyarray.m4')
-rw-r--r-- | m4/ax_emptyarray.m4 | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/m4/ax_emptyarray.m4 b/m4/ax_emptyarray.m4 new file mode 100644 index 0000000..c6781c1 --- /dev/null +++ b/m4/ax_emptyarray.m4 @@ -0,0 +1,40 @@ +dnl @synopsis AX_EMPTY_ARRAY +dnl +dnl Define EMPTY_ARRAY_SIZE to be either "0" +dnl or "" depending on which syntax the compiler +dnl prefers for empty arrays in structs. +dnl +dnl @version +dnl @author James Yonan <jim@yonan.net> +AC_DEFUN([AX_EMPTY_ARRAY], [ + AS_VAR_PUSHDEF([VAR],[ax_cv_c_empty_array])dnl + AC_CACHE_CHECK( + [for C compiler empty array size], + [VAR], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + , + [[ +struct { int foo; int bar[0]; } mystruct; + ]] + )], + [VAR=0], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + , + [[ +struct { int foo; int bar[]; } mystruct; + ]] + )], + [VAR=], + [AC_MSG_ERROR([C compiler is unable to creaty empty arrays])] + )] + )] + )dnl + AC_DEFINE_UNQUOTED( + [EMPTY_ARRAY_SIZE], + [$VAR], + [Dimension to use for empty array declaration] + )dnl + AS_VAR_POPDEF([VAR])dnl +]) |