[ET Trac] [Einstein Toolkit] #2052: piraha assumes that assert(false) always aborts

Einstein Toolkit trac-noreply at einsteintoolkit.org
Wed Jun 28 22:50:49 CDT 2017


#2052: piraha assumes that assert(false) always aborts
--------------------+-------------------------------------------------------
 Reporter:  rhaas   |       Owner:                     
     Type:  defect  |      Status:  new                
 Priority:  minor   |   Milestone:                     
Component:  Cactus  |     Version:  development version
 Keywords:  piraha  |  
--------------------+-------------------------------------------------------
 I recently tried compiling Cactus with the Cray compiler on BW and get
 (among other things) warnings like this:
 {{{
 CC-940 crayc++: WARNING File = src/piraha/Piraha.hpp, Line = 326
   A "return" statement is missing from the end of a non-void function
           "cctki_piraha::LookAhead::match".

       bool match(Matcher *m) { assert(false); }//TODO: Fill in
 }}}
 which is indeed a bug. If one defines NDEBUG (as is done for the highly
 optimized option lists) then assert() is a no-op and the function (if it
 was called) returned garbage.

 I see three solutions:

 1. call CCTK_Abort()
 1. add a "return false;" or so
 1. remove the whole function definition. I think C++ does not mind if
 declared member functions of a class are not defined, just so long as they
 are never actually called. This would have the advantage of generating a
 compile time error as well rather than a run-time error.

-- 
Ticket URL: <https://trac.einsteintoolkit.org/ticket/2052>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit


More information about the Trac mailing list