incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Sebor <se...@roguewave.com>
Subject Re: svn commit: r661873 - /stdcxx/branches/4.2.x/tests/regress/18.limits.traps.stdcxx-624.cpp
Date Sat, 31 May 2008 22:17:40 GMT
vitek@apache.org wrote:
> Author: vitek
> Date: Fri May 30 14:24:06 2008
> New Revision: 661873
> 
> URL: http://svn.apache.org/viewvc?rev=661873&view=rev
> Log:
> 2008-05-30  Travis Vitek  <vitek@roguewave.com>
> 
> 	STDCXX-833
> 	* tests/regress/18.limits.traps.stdcxx-624.cpp: Add special
> 	handling for divide by zero on windows.
> 
[...]
> @@ -66,14 +76,21 @@
>      if (std::numeric_limits<int>::traps)
>          std::signal (SIGFPE, handle_FPE);
>  
> +    bool trapped = false;
> +
>      // if this traps (generates SIGFPE), verify (in the signal handler)
>      // that integer arithmetic is expected to trap
> -    result  = non_zero / zero;
> -    result += non_zero % zero;
> +    TRY {
> +        result  = non_zero / zero;
> +        result += non_zero % zero;
> +    }
> +    EXCEPT (1) {
> +        trapped = true;
> +    }
>  
>      // if we get this far, verify that integer arithmetic is known not
>      // to trap

Since after this change it's no longer true that the assertions below
verify that integer arithmetic does not trap the comment above needs
to be updated. (The comment about SIGFPE above could also stand to
be updated to explain that the handler is never entered on Windows.

Martin

> -    assert (!std::numeric_limits<int>::traps);
> +    assert (trapped == std::numeric_limits<int>::traps);
>  
>      (void)&result;
>  
> 
> 


Mime
View raw message