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>
|
2001-02-11 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* src/gen-num-limits.cc: Use sigsetjmp and siglongjmp if available.
|
* src/gen-num-limits.cc: Use sigsetjmp and siglongjmp if available.
|
||||||
|
|
|
@ -472,48 +472,53 @@ namespace std {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
inline valarray<_Tp>
|
inline valarray<_Tp>
|
||||||
valarray<_Tp>::shift (int __n) const
|
valarray<_Tp>::shift(int __n) const
|
||||||
{
|
{
|
||||||
_Tp* const __a = static_cast<_Tp*>
|
_Tp* const __a = static_cast<_Tp*>
|
||||||
(__builtin_alloca (sizeof(_Tp) * _M_size));
|
(__builtin_alloca(sizeof(_Tp) * _M_size));
|
||||||
if (! __n) // __n == 0: no shift
|
if (__n == 0) // no shift
|
||||||
__valarray_copy_construct(_M_data, _M_data + _M_size, __a);
|
__valarray_copy_construct(_M_data, _M_data + _M_size, __a);
|
||||||
else if (__n > 0) { // __n > 0: shift left
|
else if (__n > 0) // __n > 0: shift left
|
||||||
if (__n > _M_size)
|
{
|
||||||
__valarray_default_construct(__a, __a + __n);
|
if (size_t(__n) > _M_size)
|
||||||
else {
|
__valarray_default_construct(__a, __a + __n);
|
||||||
__valarray_copy_construct(_M_data+__n, _M_data + _M_size, __a);
|
else
|
||||||
__valarray_default_construct(__a+_M_size-__n, __a + _M_size);
|
{
|
||||||
}
|
__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
|
}
|
||||||
__valarray_copy_construct (_M_data, _M_data+_M_size+__n, __a-__n);
|
}
|
||||||
__valarray_default_construct(__a, __a - __n);
|
else // __n < 0: shift right
|
||||||
}
|
{
|
||||||
return valarray<_Tp> (__a, _M_size);
|
__valarray_copy_construct (_M_data, _M_data+_M_size+__n, __a-__n);
|
||||||
}
|
__valarray_default_construct(__a, __a - __n);
|
||||||
|
}
|
||||||
|
return valarray<_Tp> (__a, _M_size);
|
||||||
|
}
|
||||||
|
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
inline valarray<_Tp>
|
inline valarray<_Tp>
|
||||||
valarray<_Tp>::cshift (int __n) const
|
valarray<_Tp>::cshift (int __n) const
|
||||||
{
|
{
|
||||||
_Tp* const __a = static_cast<_Tp*>
|
_Tp* const __a = static_cast<_Tp*>
|
||||||
(__builtin_alloca (sizeof(_Tp) * _M_size));
|
(__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);
|
__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);
|
__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
|
}
|
||||||
__valarray_copy_construct
|
else // cshift right
|
||||||
(_M_data + _M_size+__n, _M_data + _M_size, __a);
|
{
|
||||||
__valarray_copy_construct
|
__valarray_copy_construct
|
||||||
(_M_data, _M_data + _M_size+__n, __a - __n);
|
(_M_data + _M_size+__n, _M_data + _M_size, __a);
|
||||||
}
|
__valarray_copy_construct
|
||||||
return valarray<_Tp> (__a, _M_size);
|
(_M_data, _M_data + _M_size+__n, __a - __n);
|
||||||
}
|
}
|
||||||
|
return valarray<_Tp>(__a, _M_size);
|
||||||
|
}
|
||||||
|
|
||||||
template <class _Tp>
|
template <class _Tp>
|
||||||
inline void
|
inline void
|
||||||
|
|
Loading…
Reference in New Issue