Fix missing overflow exceptions from pow (bug 13873)

Andreas Jaeger aj@suse.com
Mon Apr 9 06:09:00 GMT 2012


On 04/09/2012 12:04 AM, Joseph S. Myers wrote:
> Bug 13873 is a failure of pow to raise overflow exceptions on x86_64
> when the absolute value of the exponent is so large that taking that
> power of any floating-point value other than plus or minus zero, one,
> infinity or NaN would overflow or underflow.  I propose this patch to
> fix this bug by doing computations at runtime that overflow or
> underflow as required, as done in various other places in libm.  (The
> "huge" and "tiny" constants are the same as used for this purpose
> elsewhere in dbl-64, so will be merged with the other instances since
> glibc is built with -fmerge-all-constants.)
>
> Tested x86 and x86_64.
>
> 2012-04-08  Joseph Myers<joseph@codesourcery.com>
>
> 	[BZ #13873]
> 	* sysdeps/ieee754/dbl-64/e_pow.c (huge, tiny): New variables.
> 	(__ieee754_pow): Generate overflow and underflow using huge*huge
> 	and tiny*tiny rather than just returning constant infinity or zero
> 	for large exponents.
> 	* math/libm-test.inc (pow_test): Require overflow exceptions for
> 	applicable cases of large exponents.

thanks, this is fine,
Andreas
-- 
  Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
   SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
    GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
     GPG fingerprint = 93A3 365E CE47 B889 DF7F  FED1 389A 563C C272 A126



More information about the Libc-alpha mailing list