std_valarray.h (valarray<>::shift): Avoid comparaison between signed and unsigned...
authorGabriel Dos Reis <gdr@codesourcery.com>
Sun, 11 Feb 2001 22:16:48 +0000 (22:16 +0000)
committerGabriel Dos Reis <gdr@gcc.gnu.org>
Sun, 11 Feb 2001 22:16:48 +0000 (22:16 +0000)
        * include/bits/std_valarray.h(valarray<>::shift): Avoid
        comparaison between signed and unsigned integer types.
        (valarray<>::cshift): Reformat.

From-SVN: r39590

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/std_valarray.h

index 0c3f90f9e00e7c9384c5df56d728b69f971b94de..1d84ae8da4c39f876528b6fbdfce011280e33431 100644 (file)
@@ -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.
index f42d7a0877c7eddb8ae6e9e940c9b241b7c4cd1a..be8f7cc5ac16e5f3112597b3bbbeced90ca07b76 100644 (file)
@@ -472,48 +472,53 @@ namespace std {
 //   }
 
   template <class _Tp>
-  inline valarray<_Tp>
-  valarray<_Tp>::shift (int __n) const
-  {
-      _Tp* const __a = static_cast<_Tp*>
-          (__builtin_alloca (sizeof(_Tp) * _M_size));
-      if (! __n)                          // __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)
-              __valarray_default_construct(__a, __a + __n);
-          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
-          __valarray_copy_construct (_M_data, _M_data+_M_size+__n, __a-__n);
-          __valarray_default_construct(__a, __a - __n);
-      }
-      return valarray<_Tp> (__a, _M_size);
-  }
+     inline valarray<_Tp>
+     valarray<_Tp>::shift(int __n) const
+     {
+       _Tp* const __a = static_cast<_Tp*>
+         (__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 (size_t(__n) > _M_size)
+             __valarray_default_construct(__a, __a + __n);
+           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
+         {                          
+           __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>
-  inline valarray<_Tp>
-  valarray<_Tp>::cshift (int __n) const
-  {
-      _Tp* const __a = static_cast<_Tp*>
-          (__builtin_alloca (sizeof(_Tp) * _M_size));
-      if (! __n)                          // __n == 0: no cshift
-        __valarray_copy_construct(_M_data, _M_data + _M_size, __a);
-      else if (__n > 0) {                 // __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
-          __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);
-  }
+     inline valarray<_Tp>
+     valarray<_Tp>::cshift (int __n) const
+     {
+       _Tp* const __a = static_cast<_Tp*>
+         (__builtin_alloca (sizeof(_Tp) * _M_size));
+       if (__n == 0)               // no cshift
+         __valarray_copy_construct(_M_data, _M_data + _M_size, __a);
+       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                        // 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);
+     }
 
   template <class _Tp>
   inline void