##### http://autoconf-archive.cryp.to/acx_restrict.html # # OBSOLETE MACRO # # Replaced by AC_C_RESTRICT in Autoconf 2.58 # # SYNOPSIS # # ACX_C_RESTRICT # # DESCRIPTION # # This macro determines whether the C compiler supports the # "restrict" keyword introduced in ANSI C99, or an equivalent. Does # nothing if the compiler accepts the keyword. Otherwise, if the # compiler supports an equivalent (like gcc's __restrict__) defines # "restrict" to be that. Otherwise, defines "restrict" to be empty. # # LAST MODIFICATION # # 2005-05-31 # # COPYLEFT # # Copyright (c) 2005 Steven G. Johnson # # 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 the Free Software Foundation; either version 2 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # # As a special exception, the respective Autoconf Macro's copyright # owner gives unlimited permission to copy, distribute and modify the # configure scripts that are the output of Autoconf when processing # the Macro. You need not follow the terms of the GNU General Public # License when using or distributing such scripts, even though # portions of the text of the Macro appear in them. The GNU General # Public License (GPL) does govern all other use of the material that # constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the # Autoconf Macro released by the Autoconf Macro Archive. When you # make and distribute a modified version of the Autoconf Macro, you # may extend this special exception to the GPL to apply to your # modified version as well. 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 ])