Opened 9 years ago
Closed 9 years ago
#9739 closed Bugs (duplicate)
"-ftrapv" + multiprecision results in crash at startup
Reported by: | MaxBarraclough | Owned by: | John Maddock |
---|---|---|---|
Milestone: | To Be Determined | Component: | multiprecision |
Version: | Boost 1.55.0 | Severity: | Problem |
Keywords: | Cc: |
Description
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; }
Looks like I submitted twice - this is a duplicate of #9740 ("-ftrapv" + multiprecision results in crash at startup).
(A screenshot is attached to bug 9740 but not to this one.)