http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51795
--- Comment #8 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-01-27 12:47:10 UTC --- Eg: Index: random.h =================================================================== --- random.h (revision 183615) +++ random.h (working copy) @@ -263,7 +263,7 @@ result_type operator()() { - _M_x = __detail::__mod<_UIntType, __m, __a, __c>(_M_x); + _M_x = (__a * _M_x + __c) % __m; return _M_x; }