std_valarray.h (valarray<>::shift): Avoid comparaison between signed and unsigned integer types.
* include/bits/std_valarray.h(valarray<>::shift): Avoid comparaison between signed and unsigned integer types. (valarray<>::cshift): Reformat. From-SVN: r39590
This commit is contained in:
parent
e065341b56
commit
d2155bfea5
|
@ -1,3 +1,9 @@
|
|||
2001-02-11 Gabriel Dos Reis <gdr@codesourcery.com>
|
||||
|
||||
* include/bits/std_valarray.h(valarray<>::shift): Avoid
|
||||
comparaison between signed and unsigned integer types.
|
||||
(valarray<>::cshift): Reformat.
|
||||
|
||||
2001-02-11 Alexandre Oliva <aoliva@redhat.com>
|
||||
|
||||
* src/gen-num-limits.cc: Use sigsetjmp and siglongjmp if available.
|
||||
|
|
|
@ -473,21 +473,24 @@ namespace std {
|
|||
|
||||
template <class _Tp>
|
||||
inline valarray<_Tp>
|
||||
valarray<_Tp>::shift (int __n) const
|
||||
valarray<_Tp>::shift(int __n) const
|
||||
{
|
||||
_Tp* const __a = static_cast<_Tp*>
|
||||
(__builtin_alloca (sizeof(_Tp) * _M_size));
|
||||
if (! __n) // __n == 0: no shift
|
||||
(__builtin_alloca(sizeof(_Tp) * _M_size));
|
||||
if (__n == 0) // no shift
|
||||
__valarray_copy_construct(_M_data, _M_data + _M_size, __a);
|
||||
else if (__n > 0) { // __n > 0: shift left
|
||||
if (__n > _M_size)
|
||||
else if (__n > 0) // __n > 0: shift left
|
||||
{
|
||||
if (size_t(__n) > _M_size)
|
||||
__valarray_default_construct(__a, __a + __n);
|
||||
else {
|
||||
else
|
||||
{
|
||||
__valarray_copy_construct(_M_data+__n, _M_data + _M_size, __a);
|
||||
__valarray_default_construct(__a+_M_size-__n, __a + _M_size);
|
||||
}
|
||||
}
|
||||
else { // __n < 0: shift right
|
||||
else // __n < 0: shift right
|
||||
{
|
||||
__valarray_copy_construct (_M_data, _M_data+_M_size+__n, __a-__n);
|
||||
__valarray_default_construct(__a, __a - __n);
|
||||
}
|
||||
|
@ -500,19 +503,21 @@ namespace std {
|
|||
{
|
||||
_Tp* const __a = static_cast<_Tp*>
|
||||
(__builtin_alloca (sizeof(_Tp) * _M_size));
|
||||
if (! __n) // __n == 0: no cshift
|
||||
if (__n == 0) // no cshift
|
||||
__valarray_copy_construct(_M_data, _M_data + _M_size, __a);
|
||||
else if (__n > 0) { // __n > 0: cshift left
|
||||
else if (__n > 0) // cshift left
|
||||
{
|
||||
__valarray_copy_construct(_M_data, _M_data+__n, __a+_M_size-__n);
|
||||
__valarray_copy_construct(_M_data+__n, _M_data + _M_size, __a);
|
||||
}
|
||||
else { // __n < 0: cshift right
|
||||
else // cshift right
|
||||
{
|
||||
__valarray_copy_construct
|
||||
(_M_data + _M_size+__n, _M_data + _M_size, __a);
|
||||
__valarray_copy_construct
|
||||
(_M_data, _M_data + _M_size+__n, __a - __n);
|
||||
}
|
||||
return valarray<_Tp> (__a, _M_size);
|
||||
return valarray<_Tp>(__a, _M_size);
|
||||
}
|
||||
|
||||
template <class _Tp>
|
||||
|
|
Loading…
Reference in New Issue