[ET Trac] [Einstein Toolkit] #1121: gcc 4.6+ compiler bug for isnan

Einstein Toolkit trac-noreply at einsteintoolkit.org
Fri Oct 19 08:10:31 CDT 2012


#1121: gcc 4.6+ compiler bug for isnan
----------------------+-----------------------------------------------------
  Reporter:  sbrandt  |       Owner:  eschnett           
      Type:  defect   |      Status:  assigned           
  Priority:  minor    |   Milestone:  ET_2012_11         
 Component:  Carpet   |     Version:  development version
Resolution:           |    Keywords:                     
----------------------+-----------------------------------------------------

Comment (by eschnett):

 I attach a patch that solves this problem by using autoconf to decided how
 to call isnan etc.

 In addition to providing a macro CCTK_ISNAN, there is also a C function
 CCTK_isnan defined that can be called from C++, providing a fallback if
 necessary.

 If C++ does not provide a proper implementation of isnan, i.e. one that
 can be called as std::isnan, then define a macro isnan to correct this.
 That is, one can now always call std::isnan to get a good definition of
 isnan.

 Add a test thorn TestMath.

 Remove the respective magic from Carpet.

 Update various locations that use isnan.

 Update thorn NaNChecker:
 - use std::isnan
 - simplify check_for logic
 - don't call C++ isnan, which is known to be optimised away in certain
 cases; instead, call the C isnan (via CCTK_isnan) that is not optimised
 away

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


More information about the Trac mailing list