summaryrefslogtreecommitdiff
path: root/m4/restrict.m4
diff options
context:
space:
mode:
authorJim Meyering <jim@meyering.net>2003-02-12 08:57:34 +0000
committerJim Meyering <jim@meyering.net>2003-02-12 08:57:34 +0000
commit887ad2d3580748b256d523b7e4fee3fac916fbc0 (patch)
tree312ccef7b091f23402f582e500f9b012a5850ef2 /m4/restrict.m4
parentac3db7d31983bdb197f1acd8b6a00b39434ccf78 (diff)
downloadcoreutils-887ad2d3580748b256d523b7e4fee3fac916fbc0.tar.xz
(ACX_C_RESTRICT): Minor syntactic changes:
Split long lines, use AC_COMPILE_IFELSE, use `case' instead of nested `if's, remove unnecessary quotes.
Diffstat (limited to 'm4/restrict.m4')
-rw-r--r--m4/restrict.m449
1 files changed, 29 insertions, 20 deletions
diff --git a/m4/restrict.m4 b/m4/restrict.m4
index c5492f9ba..902dc1308 100644
--- a/m4/restrict.m4
+++ b/m4/restrict.m4
@@ -1,24 +1,33 @@
-dnl Available from the GNU Autoconf Macro Archive at:
+#serial 1000
+dnl based on acx_restrict.m4, from the GNU Autoconf Macro Archive at:
dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_restrict.html
-dnl
+
+# Determine whether the 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 (like gcc's __restrict__)
+# define "restrict" to be that. Otherwise, define "restrict" to be empty.
+
AC_DEFUN([ACX_C_RESTRICT],
[AC_CACHE_CHECK([for C restrict keyword], acx_cv_c_restrict,
-[acx_cv_c_restrict=unsupported
- AC_LANG_SAVE
- AC_LANG_C
- # Try the official restrict keyword, then gcc's __restrict__, then
- # SGI's __restrict. __restrict has slightly different semantics than
- # restrict (it's a bit stronger, in that __restrict pointers can't
- # overlap even with non __restrict pointers), but I think it should be
- # okay under the circumstances where restrict is normally used.
- for acx_kw in restrict __restrict__ __restrict; do
- AC_TRY_COMPILE([], [float * $acx_kw x;], [acx_cv_c_restrict=$acx_kw; break])
- done
- AC_LANG_RESTORE
-])
- if test "$acx_cv_c_restrict" != "restrict"; then
- acx_kw="$acx_cv_c_restrict"
- if test "$acx_kw" = unsupported; then acx_kw=""; fi
- AC_DEFINE_UNQUOTED(restrict, $acx_kw, [Define to equivalent of C99 restrict keyword, or to nothing if this is not supported. Do not define if restrict is supported directly.])
- fi
+ [acx_cv_c_restrict=no
+ # Try the official restrict keyword, then gcc's __restrict__, then
+ # SGI's __restrict. __restrict has slightly different semantics than
+ # restrict (it's a bit stronger, in that __restrict pointers can't
+ # overlap even with non __restrict pointers), but I think it should be
+ # okay under the circumstances where restrict is normally used.
+ for acx_kw in restrict __restrict__ __restrict; do
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ [#ifndef __cplusplus
+ float * $acx_kw x;
+#endif
+ ])], [acx_cv_c_restrict=$acx_kw; break])
+ done
+ ])
+ case $acx_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, $acx_cv_c_restrict) ;;
+ esac
])