--- l4common.h.org 2014-01-13 00:43:28.406867323 +0800 +++ l4common.h 2014-01-13 00:48:49.384892938 +0800 @@ -2,31 +2,39 @@ #ifndef LBS_COMMON_H #define LBS_COMMON_H +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + #include #ifdef __STDC_VERSION__ # include # if __STDC_VERSION__ >= 201112L # define LBS_COMMON_ISO_C11 -# define LBS_COMMON_CHECK_TYPE(x,type) (_Generic ((x), type: (x))) # else # define LBS_COMMON_ISO_C99 -# define LBS_COMMON_CHECK_TYPE(x,type) (x) # endif #else # ifdef __cplusplus # define LBS_COMMON_CXX -# define LBS_COMMON_CHECK_TYPE(x,type) (x) # else # define bool char # define true 1 # define false 0 # define inline # define LBS_COMMON_ISO_C89 -# define LBS_COMMON_CHECK_TYPE(x,type) (x) # endif /* __cplusplus */ #endif /* __STDC_VERSION__ */ +#ifdef HAVE_C__GENERIC +# define LBS_COMMON_CHECK_TYPE(x,type) (_Generic ((x), type: (x))) +#else +# define LBS_COMMON_CHECK_TYPE(x,type) (x) +#endif + +#include "memwrap.h" + #define LBS_COMMON_NULL_PTR ((void*)NULL) #define LBS_COMMON_DEFINE_GETTER(ns,xt,m,mt) \ static inline mt ns ## _get_ ## m (xt x) { \