Rolf Vandevaart <Rolf.Vandevaart <at> Sun.COM> writes: > However, as of Sun Studio 12, the C compiler also supports __restrict__. > Therefore, we need to update the workaround to handle this additional > possible value. Here is my suggestion. > > #undef restrict > /* Work around a bug in Sun C++: it does not support _Restrict or > __restrict__, even though the corresponding Sun C compiler > does, which causes "#define restrict _Restrict" or "#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. */ > #if defined __SUNPRO_CC && !defined __RESTRICT > # define _Restrict > # define __restrict__ > #endif])
Thanks for the report. I agree that this makes sense; here's the patch that I applied which does what you suggested: From: Eric Blake <[email protected]> Date: Wed, 28 Jan 2009 09:57:08 -0700 Subject: [PATCH] Fix AC_C_RESTRICT for Sun Studio 12 C++. * lib/autoconf/c.m4 (AC_C_RESTRICT): Newer Sun Studio C provides __restrict__ rather than _Restrict, which still trips up Sun Studio 12 C++. * THANKS: Update. Reported by Rolf Vandevaart. Signed-off-by: Eric Blake <[email protected]> --- ChangeLog | 9 +++++++++ THANKS | 1 + lib/autoconf/c.m4 | 15 ++++++++------- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2885f27..44e147c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2009-01-28 Eric Blake <[email protected]> + Fix AC_C_RESTRICT for Sun Studio 12 C++. + * lib/autoconf/c.m4 (AC_C_RESTRICT): Newer Sun Studio C provides + __restrict__ rather than _Restrict, which still trips up Sun + Studio 12 C++. + * THANKS: Update. + Reported by Rolf Vandevaart. + +2009-01-28 Eric Blake <[email protected]> + Fix years in copyright notices. * lib/m4sugar/m4sugar.m4 (m4_copyright_condense): New macro, undocumented for now. diff --git a/THANKS b/THANKS index 54310b5..74895cf 100644 --- a/THANKS +++ b/THANKS diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4 index beaf0b1..3fa9c04 100644 --- a/lib/autoconf/c.m4 +++ b/lib/autoconf/c.m4 @@ -1,7 +1,7 @@ # This file is part of Autoconf. -*- Autoconf -*- # Programming languages support. -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free -# Software Foundation, Inc. +# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 +# 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 @@ -1604,13 +1604,14 @@ AC_DEFUN([AC_C_RESTRICT], 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) ;; -- 1.6.0.4
