From: Enblend <enb...@li...> - 2014-08-30 14:34:42
|
branch: details: http://enblend.hg.sourceforge.net/hgweb/enblend/enblend/hg/p/enblend/code/rev/a5d23a316792 changeset: 1093:a5d23a316792 user: Chris <cs...@us...> date: Sat Aug 30 16:34:08 2014 +0200 description: Back out change ec3d22f0f8e9 as MSVC uses `restrict' in different contexts. Therefore any macro substitution towards the use of `restict' breaks down. However, we could use `__restrict' in the source as long as a no compiler trips up on _that_. Gee. diffstat: ConfigureChecks.cmake | 55 ++++++++++++++++--------------------------------- VERSION | 2 +- config.h.cmake | 2 +- configure.in | 1 + doc/enblend.info | Bin doc/enfuse.info | Bin doc/versenblend.texi | 4 +- doc/versenfuse.texi | 4 +- src/openmp_vigra.h | 6 ++-- 9 files changed, 28 insertions(+), 46 deletions(-) diffs (150 lines): diff -r df3935bf21b2 -r a5d23a316792 ConfigureChecks.cmake --- a/ConfigureChecks.cmake Fri Aug 29 08:59:00 2014 +0200 +++ b/ConfigureChecks.cmake Sat Aug 30 16:34:08 2014 +0200 @@ -71,45 +71,26 @@ # Check for restrict keyword # Builds the macro A_C_RESTRICT form automake -check_cxx_source_compiles( +set(RESTRICT) +foreach(ac_kw __restrict __restrict__ _Restrict restrict) + check_cxx_source_compiles( " - int foo (int * restrict ip) { - return ip[0]; - } - int main(){ - int s[1]; - int * restrict t = s; - t[0] = 0; - return foo(t); - } + int foo (int * ${ac_kw} ip) { + return ip[0]; + } + int main(){ + int s[1]; + int * ${ac_kw} t = s; + t[0] = 0; + return foo(t); + } " - HAVE_RESTRICT) -IF(HAVE_RESTRICT) - set(restrict FALSE) - set(RESTRICT_KEYWORD "") -ELSE() - set(restrict TRUE) - set(RESTRICT_KEYWORD "") - foreach(ac_kw __restrict __restrict__ _Restrict) - check_cxx_source_compiles( - " - int foo (int * ${ac_kw} ip) { - return ip[0]; - } - int main(){ - int s[1]; - int * ${ac_kw} t = s; - t[0] = 0; - return foo(t); - } - " - RESTRICT_${ac_kw}_FOUND) - if(RESTRICT_${ac_kw}_FOUND) - set(RESTRICT_KEYWORD ${ac_kw}) - break() - endif() - endforeach() -ENDIF() + RESTRICT_${ac_kw}_FOUND) + if(RESTRICT_${ac_kw}_FOUND) + set(RESTRICT ${ac_kw}) + break() + endif() +endforeach() if(VIGRA_FOUND AND NOT VIGRA_VERSION_CHECK) unset(VIGRA_SETIMAGEINDEX CACHE) diff -r df3935bf21b2 -r a5d23a316792 VERSION --- a/VERSION Fri Aug 29 08:59:00 2014 +0200 +++ b/VERSION Sat Aug 30 16:34:08 2014 +0200 @@ -1,1 +1,1 @@ -4.2-fbdb0d2890ab +4.2-e4d6ae9dfe83 diff -r df3935bf21b2 -r a5d23a316792 config.h.cmake --- a/config.h.cmake Fri Aug 29 08:59:00 2014 +0200 +++ b/config.h.cmake Sat Aug 30 16:34:08 2014 +0200 @@ -42,7 +42,7 @@ /* define the correct restrict keyword, Empty or one of __restrict __restrict__ _Restrict restrict */ -#cmakedefine restrict ${RESTRICT_KEYWORD} +#define RESTRICT ${RESTRICT} /* Name of package */ #define PACKAGE "enblend-enfuse" diff -r df3935bf21b2 -r a5d23a316792 configure.in --- a/configure.in Fri Aug 29 08:59:00 2014 +0200 +++ b/configure.in Sat Aug 30 16:34:08 2014 +0200 @@ -267,6 +267,7 @@ AC_SUBST(HAVE_INLINE) fi AC_C_RESTRICT +AC_DEFINE([RESTRICT], [restrict], [Map RESTRICT onto C99 restrict keyword]) AC_TYPE_OFF_T AC_TYPE_SIGNAL diff -r df3935bf21b2 -r a5d23a316792 doc/enblend.info Binary file doc/enblend.info has changed diff -r df3935bf21b2 -r a5d23a316792 doc/enfuse.info Binary file doc/enfuse.info has changed diff -r df3935bf21b2 -r a5d23a316792 doc/versenblend.texi --- a/doc/versenblend.texi Fri Aug 29 08:59:00 2014 +0200 +++ b/doc/versenblend.texi Sat Aug 30 16:34:08 2014 +0200 @@ -1,4 +1,4 @@ @set UPDATED 27 August 2014 @set UPDATED-MONTH August 2014 -@set EDITION 4.2-fc2b8db1f784 -@set VERSION 4.2-fc2b8db1f784 +@set EDITION 4.2-fbdb0d2890ab +@set VERSION 4.2-fbdb0d2890ab diff -r df3935bf21b2 -r a5d23a316792 doc/versenfuse.texi --- a/doc/versenfuse.texi Fri Aug 29 08:59:00 2014 +0200 +++ b/doc/versenfuse.texi Sat Aug 30 16:34:08 2014 +0200 @@ -1,4 +1,4 @@ @set UPDATED 27 August 2014 @set UPDATED-MONTH August 2014 -@set EDITION 4.2-fc2b8db1f784 -@set VERSION 4.2-fc2b8db1f784 +@set EDITION 4.2-fbdb0d2890ab +@set VERSION 4.2-fbdb0d2890ab diff -r df3935bf21b2 -r a5d23a316792 src/openmp_vigra.h --- a/src/openmp_vigra.h Fri Aug 29 08:59:00 2014 +0200 +++ b/src/openmp_vigra.h Sat Aug 30 16:34:08 2014 +0200 @@ -239,7 +239,7 @@ int id() const {return 0;} - void operator()(ValueType* /* restrict d */, const ValueType* /* restrict f */, int /* n */) const + void operator()(ValueType* /* RESTRICT d */, const ValueType* /* RESTRICT f */, int /* n */) const { vigra_fail("fh::detail::ChessboardTransform1D: not implemented"); } @@ -253,7 +253,7 @@ int id() const {return 1;} - void operator()(ValueType* restrict d, const ValueType* restrict f, int n) const + void operator()(ValueType* RESTRICT d, const ValueType* RESTRICT f, int n) const { const ValueType one = static_cast<ValueType>(1); @@ -277,7 +277,7 @@ int id() const {return 2;} - void operator()(ValueType* restrict d, const ValueType* restrict f, int n) const + void operator()(ValueType* RESTRICT d, const ValueType* RESTRICT f, int n) const { typedef float math_t; |