[ET Trac] [Einstein Toolkit] #1276: Intel 2013.1.117 mis-compiles NewRad

Einstein Toolkit trac-noreply at einsteintoolkit.org
Sun May 5 23:16:39 CDT 2013


#1276: Intel 2013.1.117 mis-compiles NewRad
------------------------------------+---------------------------------------
  Reporter:  rhaas                  |       Owner:                     
      Type:  defect                 |      Status:  review             
  Priority:  critical               |   Milestone:  ET_2013_05         
 Component:  EinsteinToolkit thorn  |     Version:  development version
Resolution:                         |    Keywords:  NewRad             
------------------------------------+---------------------------------------

Comment (by knarf):

 The first part of the patch is incorrect, but the second worked. This left
 'restrict' for C intact, while it does remove it for C++. The file in
 question here was C++, so I didn't catch this, and the (most/all?) tests
 passed for me. For C++, and with this version of the compiler, autoconf
 sets  HAVE_CCTK_CXX_RESTRICT to 1 and CCTK_CXX_RESTRICT to __restrict__.
 With the old patch, 'restrict' is then defined empty for problematic
 versions of the intel compiler (instead of __restrict__).

 However, you are right: this could be made even better. Attached is a new
 version of the patch. This one first contains a conditional on the version
 of the compiler for all CCODE. Then, for C and CXX separately, it skips
 the autoconf-provided values if the compiler was found to be bad, and
 instead HAVE_CCTK_CXX_RESTRICT remains undefined and CCTK_CXX_RESTRICT is
 set empty, which later defines 'restrict' to empty too (similarly for C).

 Because someone might actually want to overwrite this,
 CCTK_INTEL_COMPILER_DONT_DISABLE_RESTRICT is checked, and if set, doesn't
 disable restrict even for bad compilers.

 Also, now all Intel compilers with build dates between 20121010 and
 20130313 are flagged 'bad'.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/1276#comment:25>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list