Author: sebor
Date: Mon Apr 21 20:24:44 2008
New Revision: 650367
URL: http://svn.apache.org/viewvc?rev=650367&view=rev
Log:
2008-04-21 Martin Sebor <[EMAIL PROTECTED]>
* include/valarray.cc (shift, cshift): Removed assumptions about
value_type being constructible from int. Revealed by regression
test for STDCXX-316 committed in rev 650366.
(cshift): Replaced a functional cast involving _RWSTD_PTRDIFF_T
with a C-style one in case the macro expands to something like
"signed long."
Modified:
stdcxx/trunk/include/valarray.cc
Modified: stdcxx/trunk/include/valarray.cc
URL:
http://svn.apache.org/viewvc/stdcxx/trunk/include/valarray.cc?rev=650367&r1=650366&r2=650367&view=diff
==============================================================================
--- stdcxx/trunk/include/valarray.cc (original)
+++ stdcxx/trunk/include/valarray.cc Mon Apr 21 20:24:44 2008
@@ -22,7 +22,7 @@
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
- * Copyright 1994-2006 Rogue Wave Software.
+ * Copyright 1994-2008 Rogue Wave Software, Inc.
*
**************************************************************************/
@@ -37,7 +37,7 @@
return *this;
if (size () <= (_RWSTD_SIZE_T)(__n < 0 ? -__n : __n))
- return valarray (_TypeT (0), size ());
+ return valarray (_TypeT (), size ());
_RW::__rw_array <_TypeT> __tmp (_TypeT (0), size ());
@@ -56,13 +56,13 @@
{
// compute non-negative modulus - the sign of (a % b) is
// implementation-defined if either argument is negative (5.6, p4)
- _RWSTD_PTRDIFF_T __mod = size () ? __n % _RWSTD_PTRDIFF_T (size ()) : 0;
+ _RWSTD_PTRDIFF_T __mod = size () ? __n % (_RWSTD_PTRDIFF_T)size () : 0;
_RWSTD_SIZE_T __rem = __mod < 0 ? -__mod : __mod;
if (0 == __rem)
return *this;
- _RW::__rw_array<_TypeT> __tmp (_TypeT (0), size ());
+ _RW::__rw_array<_TypeT> __tmp (_TypeT (), size ());
// 26.3.2.7, p7 - negative n rotates right, positive left
rotate_copy (_C_array.begin (),