Add workaround for missing 'restrict' keyword.
Add a cpp #define that removes 'restrict' keyword usage unless the compiler definitely supports C99. As written, 'restrict' is only enabled if the compiler supports the -std=gnu99 option (e.g. gcc and llvm). Reported by Tobias Hieta.
This commit is contained in:
parent
302735f90d
commit
99b0fbbe69
@ -19,7 +19,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
|||||||
]], [[
|
]], [[
|
||||||
return 0;
|
return 0;
|
||||||
]])],
|
]])],
|
||||||
|
[je_cv_cflags_appended=$1]
|
||||||
AC_MSG_RESULT([yes]),
|
AC_MSG_RESULT([yes]),
|
||||||
|
[je_cv_cflags_appended=]
|
||||||
AC_MSG_RESULT([no])
|
AC_MSG_RESULT([no])
|
||||||
[CFLAGS="${TCFLAGS}"]
|
[CFLAGS="${TCFLAGS}"]
|
||||||
)
|
)
|
||||||
@ -128,6 +130,9 @@ if test "x$CFLAGS" = "x" ; then
|
|||||||
no_CFLAGS="yes"
|
no_CFLAGS="yes"
|
||||||
if test "x$GCC" = "xyes" ; then
|
if test "x$GCC" = "xyes" ; then
|
||||||
JE_CFLAGS_APPEND([-std=gnu99])
|
JE_CFLAGS_APPEND([-std=gnu99])
|
||||||
|
if test "x$je_cv_cflags_appended" = "x-std=gnu99" ; then
|
||||||
|
AC_DEFINE_UNQUOTED([JEMALLOC_HAS_RESTRICT])
|
||||||
|
fi
|
||||||
JE_CFLAGS_APPEND([-Wall])
|
JE_CFLAGS_APPEND([-Wall])
|
||||||
JE_CFLAGS_APPEND([-pipe])
|
JE_CFLAGS_APPEND([-pipe])
|
||||||
JE_CFLAGS_APPEND([-g3])
|
JE_CFLAGS_APPEND([-g3])
|
||||||
|
@ -187,6 +187,9 @@
|
|||||||
*/
|
*/
|
||||||
#undef JEMALLOC_HAS_ALLOCA_H
|
#undef JEMALLOC_HAS_ALLOCA_H
|
||||||
|
|
||||||
|
/* C99 restrict keyword supported. */
|
||||||
|
#undef JEMALLOC_HAS_RESTRICT
|
||||||
|
|
||||||
/* sizeof(int) == 2^LG_SIZEOF_INT. */
|
/* sizeof(int) == 2^LG_SIZEOF_INT. */
|
||||||
#undef LG_SIZEOF_INT
|
#undef LG_SIZEOF_INT
|
||||||
|
|
||||||
|
@ -45,3 +45,7 @@
|
|||||||
#ifndef __DECONST
|
#ifndef __DECONST
|
||||||
# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
|
# define __DECONST(type, var) ((type)(uintptr_t)(const void *)(var))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef JEMALLOC_HAS_RESTRICT
|
||||||
|
# define restrict
|
||||||
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user