# HG changeset patch # User Paul Eggert # Date 1060284794 0 # Node ID c5ffba0b61b5e11b033f57233d77deab36912716 # Parent c761847c9afa887ab5696d9d111ec847fbcac0e3 Add 'restrict' module. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2003-08-07 Paul Eggert + + * modules/restrict: New file. + * MODULES.html.sh (func_all_modules): Add restrict. + * modules/regex: Depend on restrict. + 2003-08-07 Bruno Haible * modules/getndelim2 (Makefile.am): Add the files to EXTRA_DIST, not diff --git a/MODULES.html.sh b/MODULES.html.sh --- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -1593,6 +1593,16 @@ func_wrap H2 func_echo "$element" + element="Keywords" + element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` + func_section_wrap isoc_sup_keywords + func_wrap H3 + func_echo "$element" + + func_begin_table + func_module restrict + func_end_table + element="Boolean type and values " element=`printf "%s" "$element" | sed -e "$sed_lt" -e "$sed_gt"` func_section_wrap isoc_sup_stdbool diff --git a/m4/ChangeLog b/m4/ChangeLog --- a/m4/ChangeLog +++ b/m4/ChangeLog @@ -1,3 +1,8 @@ +2003-08-07 Paul Eggert + + * restrict.m4: New file. + * regex.m4 (jm_PREREQ_REGEX): Add gl_C_RESTRICT. + 2003-08-07 Bruno Haible * getndelim2.m4 (gl_GETNDELIM2): Use AC_LIBOBJ(getndelim2). This makes diff --git a/m4/regex.m4 b/m4/regex.m4 --- a/m4/regex.m4 +++ b/m4/regex.m4 @@ -1,4 +1,4 @@ -#serial 17 +#serial 18 dnl Initially derived from code in GNU grep. dnl Mostly written by Jim Meyering. @@ -110,6 +110,7 @@ dnl Persuade glibc to declare mempcpy(). AC_REQUIRE([AC_GNU_SOURCE]) + AC_REQUIRE([gl_C_RESTRICT]) AC_REQUIRE([AC_FUNC_ALLOCA]) AC_REQUIRE([AC_HEADER_STDC]) AC_CHECK_HEADERS_ONCE(limits.h string.h wchar.h wctype.h) diff --git a/m4/restrict.m4 b/m4/restrict.m4 new file mode 100644 --- /dev/null +++ b/m4/restrict.m4 @@ -0,0 +1,33 @@ +#serial 1002 +# This macro can be removed once we can rely on Autoconf 2.57a or later, +# since we can then use its AC_C_RESTRICT. + +# gl_C_RESTRICT +# -------------- +# Determine whether the C/C++ compiler supports the "restrict" keyword +# introduced in ANSI C99, or an equivalent. Do nothing if the compiler +# accepts it. Otherwise, if the compiler supports an equivalent, +# define "restrict" to be that. Here are some variants: +# - GCC supports both __restrict and __restrict__ +# - older DEC Alpha C compilers support only __restrict +# - _Restrict is the only spelling accepted by Sun WorkShop 6 update 2 C +# Otherwise, define "restrict" to be empty. +AC_DEFUN([gl_C_RESTRICT], +[AC_CACHE_CHECK([for C/C++ restrict keyword], gl_cv_c_restrict, + [gl_cv_c_restrict=no + # Try the official restrict keyword, then gcc's __restrict, and + # the less common variants. + for ac_kw in restrict __restrict __restrict__ _Restrict; do + AC_COMPILE_IFELSE([AC_LANG_SOURCE( + [float * $ac_kw x;])], + [gl_cv_c_restrict=$ac_kw; break]) + done + ]) + case $gl_cv_c_restrict in + restrict) ;; + no) AC_DEFINE(restrict,, + [Define to equivalent of C99 restrict keyword, or to nothing if this + is not supported. Do not define if restrict is supported directly.]) ;; + *) AC_DEFINE_UNQUOTED(restrict, $gl_cv_c_restrict) ;; + esac +]) diff --git a/modules/regex b/modules/regex --- a/modules/regex +++ b/modules/regex @@ -10,6 +10,7 @@ alloca unlocked-io gettext +restrict configure.ac: gl_REGEX diff --git a/modules/restrict b/modules/restrict new file mode 100644 --- /dev/null +++ b/modules/restrict @@ -0,0 +1,17 @@ +Description: +The C99 'restrict' keyword. + +Files: +m4/restrict.m4 + +Depends-on: + +configure.ac: +gl_C_RESTRICT + +Makefile.am: + +Include: + +Maintainer: +Paul Eggert and Jim Meyering