Mercurial > gnulib
changeset 17749:228d489fadb5
gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
* m4/gnulib-common.m4 (AC_C_RESTRICT):
Override AC_C_RESTRICT unconditionally.
Update from autoconf, incorporating:
2014-09-02 autoconf: port 'restrict' to GCC 4.2.1
2009-01-28 Fix AC_C_RESTRICT for Sun Studio 12 C++.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 02 Sep 2014 11:56:55 -0700 |
parents | 9561cd5ac6fc |
children | 7355c636029c |
files | ChangeLog m4/gnulib-common.m4 |
diffstat | 2 files changed, 34 insertions(+), 23 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Sep 01 01:51:06 2014 -0700 +++ b/ChangeLog Tue Sep 02 11:56:55 2014 -0700 @@ -1,3 +1,12 @@ +2014-09-02 Paul Eggert <eggert@cs.ucla.edu> + + gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++ + * m4/gnulib-common.m4 (AC_C_RESTRICT): + Override AC_C_RESTRICT unconditionally. + Update from autoconf, incorporating: + 2014-09-02 autoconf: port 'restrict' to GCC 4.2.1 + 2009-01-28 Fix AC_C_RESTRICT for Sun Studio 12 C++. + 2014-09-01 Paul Eggert <eggert@cs.ucla.edu> manywarnings: add GCC 4.9 warnings
--- a/m4/gnulib-common.m4 Mon Sep 01 01:51:06 2014 -0700 +++ b/m4/gnulib-common.m4 Tue Sep 02 11:56:55 2014 -0700 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 35 +# gnulib-common.m4 serial 36 dnl Copyright (C) 2007-2014 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -319,26 +319,28 @@ ]) # AC_C_RESTRICT -# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61, -# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++ -# works. -# This definition can be removed once autoconf >= 2.62 can be assumed. -# AC_AUTOCONF_VERSION was introduced in 2.62, so use that as the witness. -m4_ifndef([AC_AUTOCONF_VERSION],[ +# This definition is copied from post-2.69 Autoconf and overrides the +# AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed +# once autoconf >= 2.70 can be assumed. It's painful to check version +# numbers, and in practice this macro is more up-to-date than Autoconf +# is, so override Autoconf unconditionally. AC_DEFUN([AC_C_RESTRICT], [AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict], [ac_cv_c_restrict=no # The order here caters to the fact that C++ does not require restrict. for ac_kw in __restrict __restrict__ _Restrict restrict; do - AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[typedef int * int_ptr; - int foo (int_ptr $ac_kw ip) { - return ip[0]; - }]], - [[int s[1]; - int * $ac_kw t = s; - t[0] = 0; - return foo(t)]])], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + ]], + [[int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -348,21 +350,21 @@ nothing if this is not supported. Do not define if restrict is supported directly. */ #undef restrict -/* Work around a bug in Sun C++: it does not support _Restrict, even - though the corresponding Sun C compiler does, which causes - "#define restrict _Restrict" in the previous line. Perhaps some future - version of Sun C++ will work with _Restrict; if so, it'll probably - define __RESTRICT, just as Sun C does. */ +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ #if defined __SUNPRO_CC && !defined __RESTRICT # define _Restrict +# define __restrict__ #endif]) case $ac_cv_c_restrict in restrict) ;; no) AC_DEFINE([restrict], []) ;; *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;; esac -]) -]) +])# AC_C_RESTRICT # gl_BIGENDIAN # is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.