From: Jim Meyering Date: Sat, 12 Apr 2003 20:53:20 +0000 (+0000) Subject: (AC_C_RESTRICT): New macro. X-Git-Tag: AUTOCONF-2.57a~59 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cc5c0689cbc6b4f7426a64e17edf727d2ac6f756;p=thirdparty%2Fautoconf.git (AC_C_RESTRICT): New macro. --- diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index a217dd5fb..5fd9221ee 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -1,6 +1,6 @@ # This file is part of Autoconf. -*- Autoconf -*- # Programming languages support. -# Copyright (C) 2001, 2002 Free Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -1077,6 +1077,41 @@ fi ])# AC_C_CONST +# AC_C_RESTRICT +# ------------- +# based on acx_restrict.m4, from the GNU Autoconf Macro Archive at: +# http://www.gnu.org/software/ac-archive/htmldoc/acx_restrict.html +# +# 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. +AN_IDENTIFIER([restrict], [AC_C_RESTRICT]) +AC_DEFUN([AC_C_RESTRICT], +[AC_CACHE_CHECK([for C/C++ restrict keyword], ac_cv_c_restrict, + [ac_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;])], + [ac_cv_c_restrict=$ac_kw; break]) + done + ]) + case $ac_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, $ac_cv_c_restrict) ;; + esac +])# AC_C_RESTRICT + + # AC_C_VOLATILE # ------------- # Note that, unlike const, #defining volatile to be the empty string can