id summary reporter owner description type status milestone component version severity resolution keywords cc 13558 gcd(INT_MIN, INT_MIN) crashes Evan Driscoll Daryle Walker "The following produces a SIGFPE for me: {{{#!c++ #include #include #include int main() { std::cout << boost::integer::gcd(INT_MIN, INT_MIN); } }}} because it simplifies `gcd(INT_MIN, INT_MIN)` => `gcd(INT_MIN % INT_MIN, INT_MIN)` => `gcd(0, INT_MIN)` => `gcd(0, INT_MIN % 0)` => gcd(0, SIGFPE)`. I'm actually not sure what the right behavior is (the documented behavior is that the return is always positive, and, for example, `gcd(-2, -2)` returns 2, but obviously you can't do that here). Boost 1.63 returned `INT_MIN` in this case, which seems like the best answer. Responsible commit: https://github.com/boostorg/integer/commit/beb68718640150f67fe5671bbbb7848d9e7170b8" Bugs new To Be Determined integer Boost 1.67.0 Problem evaned@…