Author: cazfi
Date: Wed Aug  3 00:58:37 2016
New Revision: 33427

URL: http://svn.gna.org/viewcvs/freeciv?rev=33427&view=rev
Log:
Added configure check about brace usage around C99 struct initializer within 
union.

See patch #7530

Modified:
    trunk/configure.ac
    trunk/m4/c99.m4

Modified: trunk/configure.ac
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/configure.ac?rev=33427&r1=33426&r2=33427&view=diff
==============================================================================
--- trunk/configure.ac  (original)
+++ trunk/configure.ac  Wed Aug  3 00:58:37 2016
@@ -722,6 +722,8 @@
 
 FC_C99_INITIALIZERS
 FC_C99_STDINT_H
+
+FC_C99_INITIALIZER_BRACES
 
 FC_C11_STATIC_ASSERT
 FC_C11_AT_QUICK_EXIT

Modified: trunk/m4/c99.m4
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/m4/c99.m4?rev=33427&r1=33426&r2=33427&view=diff
==============================================================================
--- trunk/m4/c99.m4     (original)
+++ trunk/m4/c99.m4     Wed Aug  3 00:58:37 2016
@@ -79,3 +79,40 @@
     AC_MSG_ERROR([A preprocessor supporting token concenation is required])
   fi
 ])
+
+# Whether C99-style initializers of a struct can, or even must, be
+# within braces.
+# Sets macros INIT_BRACE_BEGIN and INIT_BRACE_END accordingly.
+#
+AC_DEFUN([FC_C99_INITIALIZER_BRACES],
+[
+AC_CACHE_CHECK([can struct initializers be within braces],
+  [ac_cv_c99_initializer_braces],
+  [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
+    [[
+struct outer
+{
+  int v1;
+  int v2;
+  union
+  {
+    int v3;
+    struct
+    {
+      int v4;
+      int v5;
+    } inner;
+  };
+};
+
+  struct outer init_me = { 1, 2, { .inner = { 3, 4 }}}
+]])],
+  [ac_cv_c99_initializer_braces=yes], [ac_cv_c99_initializer_braces=no])])
+  if test "x${ac_cv_c99_initializer_braces}" = "xyes" ; then
+    AC_DEFINE([INIT_BRACE_BEGIN], [{], [Beginning of C99 structure 
initializer])
+    AC_DEFINE([INIT_BRACE_END], [}], [End of C99 structure initializer])
+  else
+    AC_DEFINE([INIT_BRACE_BEGIN], [], [Beginning of C99 structure initializer])
+    AC_DEFINE([INIT_BRACE_END], [], [End of C99 structure initializer])
+  fi
+])


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to