You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2008/05/22 18:07:25 UTC

Re: svn commit: r658487 - /stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp

elemings@apache.org wrote:
> Author: elemings
> Date: Tue May 20 16:17:54 2008
> New Revision: 658487
> 
> URL: http://svn.apache.org/viewvc?rev=658487&view=rev
> Log:
> 2008-05-20  Eric Lemings <er...@roguewave.com>
> 
> 	STDCXX-550
> 	* tests/numerics/26.c.math.cpp (test_behavior): Define SIZE(x)
> 	macro to convert (sufficiently small) size_t values to unsigned
> 	values without conversion warnings.  Replace sizeof operator
> 	with SIZE macro.  (Also replaced null pointer with __FILE__
> 	argument in rw_assert calls.)

Wouldn't changing check_bits() to take size_t as the second
argument be a simpler/cleaner fix?

Martin

> 
> 
> Modified:
>     stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp
> 
> Modified: stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp
> URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp?rev=658487&r1=658486&r2=658487&view=diff
> ==============================================================================
> --- stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp (original)
> +++ stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp Tue May 20 16:17:54 2008
> @@ -160,6 +160,9 @@
>          char buf [sizeof (long double) * 2];
>      } u;
>  
> +#undef SIZE
> +#define SIZE(x) _RWSTD_STATIC_CAST(unsigned, sizeof x)
> +
>  #if !defined (__SUNPRO_CC) || __SUNPRO_CC > 0x530
>  
>      // make sure functions do not overflow buffer
> @@ -168,8 +171,8 @@
>      const float f = std::modf (3.141592f, &u.f);
>  
>      rw_assert (   3000 == int (u.f * 1000) && 141592 == int (f * 1000000)
> -               && check_bits (u.buf + sizeof u.f, sizeof u - sizeof u.f),
> -               0, __LINE__, "float std::modf (float)");
> +               && check_bits (u.buf + SIZE (u.f), SIZE (u) - SIZE (u.f)),
> +               __FILE__, __LINE__, "float std::modf (float)");
>  
>  #endif   // SunPro > 5.3
>  
> @@ -177,8 +180,8 @@
>      const double d = std::modf (3.1415926, &u.d);
>  
>      rw_assert (   3000 == int (u.d * 1000) && 1415926 == int (d * 10000000)
> -               && check_bits (u.buf + sizeof u.d, sizeof u - sizeof u.d),
> -               0, __LINE__, "double std::modf (double)");
> +               && check_bits (u.buf + SIZE (u.d), SIZE (u) - SIZE (u.d)),
> +               __FILE__, __LINE__, "double std::modf (double)");
>  
>  #ifndef _RWSTD_NO_LONG_DOUBLE
>  
> @@ -188,13 +191,14 @@
>      const long double l = std::modf (3.1415926L, &u.l);
>  
>      rw_assert (   3000 == int (u.l * 1000) && 1415926 == int (l * 10000000)
> -               && check_bits (u.buf + sizeof u.l, sizeof u - sizeof u.l),
> -               0, __LINE__, "long double std::modf (long double)");
> +               && check_bits (u.buf + SIZE (u.l), SIZE (u) - SIZE (u.l)),
> +               __FILE__, __LINE__, "long double std::modf (long double)");
>  
>  #  endif   // SunPro > 5.3
>  
>  #endif   // _RWSTD_NO_LONG_DOUBLE
>  
> +#undef SIZE
>  
>      // check overloads of std::pow()
>      for (int i = -10; i != 10; ++i) {
> 
> 


RE: svn commit: r658487 - /stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp

Posted by Eric Lemings <Er...@roguewave.com>.
 

> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Thursday, May 22, 2008 10:07 AM
> To: dev@stdcxx.apache.org
> Subject: Re: svn commit: r658487 - 
> /stdcxx/branches/4.2.x/tests/numerics/26.c.math.cpp
> 
> elemings@apache.org wrote:
> > Author: elemings
> > Date: Tue May 20 16:17:54 2008
> > New Revision: 658487
> > 
> > URL: http://svn.apache.org/viewvc?rev=658487&view=rev
> > Log:
> > 2008-05-20  Eric Lemings <er...@roguewave.com>
> > 
> > 	STDCXX-550
> > 	* tests/numerics/26.c.math.cpp (test_behavior): Define SIZE(x)
> > 	macro to convert (sufficiently small) size_t values to unsigned
> > 	values without conversion warnings.  Replace sizeof operator
> > 	with SIZE macro.  (Also replaced null pointer with __FILE__
> > 	argument in rw_assert calls.)
> 
> Wouldn't changing check_bits() to take size_t as the second
> argument be a simpler/cleaner fix?

Yes it would.  I incorporated it into my next round of changes.

Brad.