diff options
Diffstat (limited to 'contrib/libstdc++')
-rw-r--r-- | contrib/libstdc++/ChangeLog | 15 | ||||
-rw-r--r-- | contrib/libstdc++/include/std/std_valarray.h | 2 | ||||
-rw-r--r-- | contrib/libstdc++/include/tr1/random | 6 |
3 files changed, 21 insertions, 2 deletions
diff --git a/contrib/libstdc++/ChangeLog b/contrib/libstdc++/ChangeLog index 7aa047877ffc..d915bcf66fbe 100644 --- a/contrib/libstdc++/ChangeLog +++ b/contrib/libstdc++/ChangeLog @@ -1,3 +1,18 @@ +2007-08-28 Paolo Carlini <pcarlini@suse.de> + + PR libstdc++/33128 + * include/tr1/random (uniform_int<>::_M_call): Deal with + __urng() returning negative values. + * testsuite/tr1/5_numerical_facilities/random/uniform_int/33128.cc: + New. + +2007-08-17 Johannes Willkomm <willkomm@sc.rwth-aachen.de> + + PR libstdc++/33084 + * include/std/valarray (operator _Op(const _Tp&, + const valarray<>&)): Fix typo. + * testsuite/26_numerics/numeric_arrays/valarray/33084.cc: New. + 2007-07-19 Release Manager * GCC 4.2.1 released. diff --git a/contrib/libstdc++/include/std/std_valarray.h b/contrib/libstdc++/include/std/std_valarray.h index 87f30ec4e028..6ef21500fc67 100644 --- a/contrib/libstdc++/include/std/std_valarray.h +++ b/contrib/libstdc++/include/std/std_valarray.h @@ -1010,7 +1010,7 @@ _DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT(>>, __shift_right) { \ typedef _BinClos<_Name, _Constant, _ValArray, _Tp, _Tp> _Closure; \ typedef typename __fun<_Name, _Tp>::result_type _Rt; \ - return _Expr<_Closure, _Tp>(_Closure(__t, __v)); \ + return _Expr<_Closure, _Rt>(_Closure(__t, __v)); \ } _DEFINE_BINARY_OPERATOR(+, __plus) diff --git a/contrib/libstdc++/include/tr1/random b/contrib/libstdc++/include/tr1/random index 56ea508575d3..c97f16d2a2d7 100644 --- a/contrib/libstdc++/include/tr1/random +++ b/contrib/libstdc++/include/tr1/random @@ -1618,7 +1618,11 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1) result_type _M_call(_UniformRandomNumberGenerator& __urng, result_type __min, result_type __max, true_type) - { return result_type(__urng() % (__max - __min + 1)) + __min; } + { + typedef typename __gnu_cxx::__add_unsigned<typename + _UniformRandomNumberGenerator::result_type>::__type __utype; + return result_type(__utype(__urng()) % (__max - __min + 1)) + __min; + } template<typename _UniformRandomNumberGenerator> result_type |