Commit 351690f6 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Provide static_assert() replacement

parent 2b268061
...@@ -511,6 +511,20 @@ AC_LINK_IFELSE([ ...@@ -511,6 +511,20 @@ AC_LINK_IFELSE([
c = NULL; c = NULL;
])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])]) ])],[AC_DEFINE([HAVE_VASPRINTF],[1],[Define to 1 if you have asprintf function])],[AC_LIBOBJ([vasprintf])])
dnl C11 static_assert()
AC_MSG_CHECKING([for static_assert in assert.h])
AC_PREPROC_IFELSE([AC_LANG_SOURCE([
#include <assert.h>
#ifndef static_assert
# error BOOM!
#endif
])], [
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_STATIC_ASSERT], [1], [Define to 1 if <assert.h> defines static_assert.])
], [
AC_MSG_RESULT([no])
])
# Windows CE does not have strcoll() # Windows CE does not have strcoll()
AC_FUNC_STRCOLL AC_FUNC_STRCOLL
......
...@@ -229,6 +229,11 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base) ...@@ -229,6 +229,11 @@ static inline locale_t newlocale(int mask, const char * locale, locale_t base)
} }
#endif #endif
#if !defined (HAVE_STATIC_ASSERT)
# define _Static_assert(x, s) ((void) sizeof (struct { unsigned:-!(x); }))
# define static_assert _Static_assert
#endif
/* Alignment of critical static data structures */ /* Alignment of critical static data structures */
#ifdef ATTRIBUTE_ALIGNED_MAX #ifdef ATTRIBUTE_ALIGNED_MAX
# define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align))) # define ATTR_ALIGN(align) __attribute__ ((__aligned__ ((ATTRIBUTE_ALIGNED_MAX < align) ? ATTRIBUTE_ALIGNED_MAX : align)))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment