[Boost-bugs] [Boost C++ Libraries] #9740: "-ftrapv" + multiprecision results in crash at startup

Subject: [Boost-bugs] [Boost C++ Libraries] #9740: "-ftrapv" + multiprecision results in crash at startup
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-03-04 16:54:12


#9740: "-ftrapv" + multiprecision results in crash at startup
------------------------------+----------------------------
 Reporter: MaxBarraclough | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: multiprecision
  Version: Boost 1.55.0 | Severity: Problem
 Keywords: |
------------------------------+----------------------------
 If the following file is compiled with g++ or clang++ ''without'' using
 the "-ftrapv" flag, it runs fine, irrespective of which lines are
 commented out.

 If we compile ''with'' "-ftrapv", with either of the ''causes crash''
 lines uncommented, then the program will crash on start-up, before even
 entering the "main" function. (The crashy code lives in a function which
 is never called.)

 This is true of both g++ and clang++.

 I am using Boost 1.55, g++ 4.8.1, clang 3.2, on Mint GNU/Linux, x86-64.


 The -ftrapv flag ( described in gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Code-
 Gen-Options.html#index-ftrapv-2326 (spam-detection forced me to sabotage
 the link) ) ''generates traps for signed overflow on addition,
 subtraction, multiplication operations''.



 {{{
 #include <boost/multiprecision/cpp_dec_float.hpp>

 #include <boost/version.hpp>

 #if ( BOOST_VERSION != 105500 )
   #error Boost 1.55 please
 #endif

 void neverCalled() {
 //boost::multiprecision::cpp_dec_float_100 e; // ok
 //boost::multiprecision::cpp_dec_float_100 f = 42; // ok
 //boost::multiprecision::cpp_dec_float_100 g = 42.0f; // causes crash if
 -ftrapv is used
   boost::multiprecision::cpp_dec_float_100 h = 42.0; // causes crash if
 -ftrapv is used
 }

 int main() {
   return 0;
 }
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9740>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC