From 9946e7a949d3b0f2795d930aa2f2ce7bda5e4f8a Mon Sep 17 00:00:00 2001
From: Joseph Myers <joseph@codesourcery.com>
Date: Wed, 8 Jun 2016 21:32:57 +0000
Subject: Fix ldexp, scalbn, scalbln for sNaN input (bug 20225).

The wrapper implementations of ldexp / scalbn / scalbln
(architecture-independent), and their float / long double variants,
return sNaN for sNaN input.  This patch fixes them to add relevant
arguments to themselves so that qNaN is returned in this case.

Tested for x86_64 and x86.

	[BZ #20225]
	* math/s_ldexp.c (__ldexp): Add non-finite or zero argument to
	itself.
	* math/s_ldexpf.c (__ldexpf): Likewise.
	* math/s_ldexpl.c (__ldexpl): Likewise.
	* math/w_scalbln.c (__w_scalbln): Likewise.
	* math/w_scalblnf.c (__w_scalblnf): Likewise.
	* math/w_scalblnl.c (__w_scalblnl): Likewise.
	* math/libm-test.inc (scalbn_test_data): Add sNaN tests.
	(scalbln_test_data): Likewise.
---
 ChangeLog | 11 +++++++++++
 1 file changed, 11 insertions(+)

(limited to 'ChangeLog')

diff --git a/ChangeLog b/ChangeLog
index 201516873b..cf5e480bbf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
 2016-06-08  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #20225]
+	* math/s_ldexp.c (__ldexp): Add non-finite or zero argument to
+	itself.
+	* math/s_ldexpf.c (__ldexpf): Likewise.
+	* math/s_ldexpl.c (__ldexpl): Likewise.
+	* math/w_scalbln.c (__w_scalbln): Likewise.
+	* math/w_scalblnf.c (__w_scalblnf): Likewise.
+	* math/w_scalblnl.c (__w_scalblnl): Likewise.
+	* math/libm-test.inc (scalbn_test_data): Add sNaN tests.
+	(scalbln_test_data): Likewise.
+
 	[BZ #20224]
 	* sysdeps/i386/fpu/s_cbrtl.S (__cbrtl): Add non-finite or zero
 	argument to itself.
-- 
cgit v1.2.3-70-g09d2