]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(ACX_C_RESTRICT): Minor syntactic changes:
authorJim Meyering <jim@meyering.net>
Wed, 12 Feb 2003 08:57:34 +0000 (08:57 +0000)
committerJim Meyering <jim@meyering.net>
Wed, 12 Feb 2003 08:57:34 +0000 (08:57 +0000)
Split long lines, use AC_COMPILE_IFELSE, use `case' instead of
nested `if's, remove unnecessary quotes.

m4/restrict.m4

index c5492f9ba34c02842c58ee6e37aea5d01565d1a0..902dc1308b9ccd7cfb3ea042ff2c162d69ee6ec3 100644 (file)
@@ -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
 ])