public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
@ 2012-07-31 23:17 Peter Bergner
  2012-08-01 14:00 ` Jason Merrill
  2012-08-01 14:29 ` Paolo Carlini
  0 siblings, 2 replies; 9+ messages in thread
From: Peter Bergner @ 2012-07-31 23:17 UTC (permalink / raw)
  To: gcc-patches; +Cc: Jason Merrill

I'd like to ping the following libstdc++ DFP patch that fixes PR54036:

  http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00959.html

Peter

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-07-31 23:17 PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs Peter Bergner
@ 2012-08-01 14:00 ` Jason Merrill
  2012-08-01 14:29 ` Paolo Carlini
  1 sibling, 0 replies; 9+ messages in thread
From: Jason Merrill @ 2012-08-01 14:00 UTC (permalink / raw)
  To: Peter Bergner; +Cc: gcc-patches, Benjamin Kosnik

On 07/31/2012 06:46 PM, Peter Bergner wrote:
> I'd like to ping the following libstdc++ DFP patch that fixes PR54036:
>
>    http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00959.html

I don't normally review library patches; I've added Benjamin to CC, as 
he's one of the library maintainers.

Jason


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-07-31 23:17 PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs Peter Bergner
  2012-08-01 14:00 ` Jason Merrill
@ 2012-08-01 14:29 ` Paolo Carlini
  2012-08-01 15:24   ` Janis Johnson
  1 sibling, 1 reply; 9+ messages in thread
From: Paolo Carlini @ 2012-08-01 14:29 UTC (permalink / raw)
  To: Peter Bergner; +Cc: gcc-patches, janis_johnson

Hi,

On 08/01/2012 12:46 AM, Peter Bergner wrote:
> I'd like to ping the following libstdc++ DFP patch that fixes PR54036:
>
>    http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00959.html
I think the patch is essentially Ok, but I would recommend giving Janis 
a chance to comment (say 24/48 h).

Note that the patch only touches libstdc++-v3 code, thus the testcases 
should be added to libstdc++-v3/testsuite/decimal and the patch itself 
was missing a CC to libstdc++@.

Thanks!
Paolo.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-01 14:29 ` Paolo Carlini
@ 2012-08-01 15:24   ` Janis Johnson
  2012-08-01 23:54     ` Peter Bergner
  0 siblings, 1 reply; 9+ messages in thread
From: Janis Johnson @ 2012-08-01 15:24 UTC (permalink / raw)
  To: Paolo Carlini; +Cc: Peter Bergner, gcc-patches

On 08/01/2012 07:29 AM, Paolo Carlini wrote:
> Hi,
> 
> On 08/01/2012 12:46 AM, Peter Bergner wrote:
>> I'd like to ping the following libstdc++ DFP patch that fixes PR54036:
>>
>>    http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00959.html
> I think the patch is essentially Ok, but I would recommend giving Janis 
> a chance to comment (say 24/48 h).

It looks fine to me.

> Note that the patch only touches libstdc++-v3 code, thus the testcases 
> should be added to libstdc++-v3/testsuite/decimal and the patch itself 
> was missing a CC to libstdc++@.

I agree.

Janis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-01 15:24   ` Janis Johnson
@ 2012-08-01 23:54     ` Peter Bergner
  2012-08-02  9:37       ` Paolo Carlini
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Bergner @ 2012-08-01 23:54 UTC (permalink / raw)
  To: Paolo Carlini; +Cc: Janis Johnson, gcc-patches, libstdc++

On Wed, 1 Aug 2012 08:24:48 -0700 Janis Johnson wrote:
> On 08/01/2012 07:29 AM, Paolo Carlini wrote:
> > On 08/01/2012 12:46 AM, Peter Bergner wrote:
> >> I'd like to ping the following libstdc++ DFP patch that fixes PR54036:
> >>
> >>    http://gcc.gnu.org/ml/gcc-patches/2012-07/msg00959.html
> > I think the patch is essentially Ok, but I would recommend giving Janis 
> > a chance to comment (say 24/48 h).
> 
> It looks fine to me.
> 
> > Note that the patch only touches libstdc++-v3 code, thus the testcases 
> > should be added to libstdc++-v3/testsuite/decimal and the patch itself 
> > was missing a CC to libstdc++@.
> 
> I agree.

So just to be sure, like the patch below?

Also, is this ok for the 4.6 and 4.7 release branches?


Peter


libstdc++-v3/
	PR libstdc++/54036
	* include/decimal/decimal.h (_DEFINE_DECIMAL_UNARY_OP): Use _Op as
	a unary operator.

libstdc++-v3/testsuite/
	PR libstdc++/54036
	* decimal/pr54036-1.cc: New test.
	* decimal/pr54036-2.cc: Likewise.
	* decimal/pr54036-3.cc: Likewise.

Index: libstdc++-v3/include/decimal/decimal.h
===================================================================
--- libstdc++-v3/include/decimal/decimal.h	(revision 189599)
+++ libstdc++-v3/include/decimal/decimal.h	(working copy)
@@ -288,7 +288,7 @@
   inline _Tp operator _Op(_Tp __rhs)		\
   {						\
     _Tp __tmp;					\
-    __tmp.__setval(0 _Op __rhs.__getval());	\
+    __tmp.__setval(_Op __rhs.__getval());	\
     return __tmp;				\
   }
 
Index: libstdc++-v3/testsuite/decimal/pr54036-1.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
@@ -0,0 +1,56 @@
+#include <decimal/decimal>
+using namespace std;
+
+decimal::decimal32
+__attribute__ ((noinline))
+my_nan32 (void)
+{
+  decimal::decimal32 z = 0;
+  decimal::decimal32 v = z/z;
+  return v;
+}
+
+decimal::decimal32
+__attribute__ ((noinline))
+my_inf32 (void)
+{
+  decimal::decimal32 o = 1;
+  decimal::decimal32 z = 0;
+  decimal::decimal32 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal::decimal32 v;
+
+  v = my_nan32 ();
+  if (!__builtin_isnand32 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd32 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isnand32 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd32 (v.__getval ()))
+    __builtin_abort ();
+
+  v = my_inf32 ();
+  if (!__builtin_isinfd32 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd32 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isinfd32 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd32 (v.__getval ()))
+    __builtin_abort ();
+
+  return 0;
+}
+
Index: libstdc++-v3/testsuite/decimal/pr54036-2.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-2.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-2.cc	(revision 0)
@@ -0,0 +1,56 @@
+#include <decimal/decimal>
+using namespace std;
+
+decimal::decimal64
+__attribute__ ((noinline))
+my_nan64 (void)
+{
+  decimal::decimal64 z = 0;
+  decimal::decimal64 v = z/z;
+  return v;
+}
+
+decimal::decimal64
+__attribute__ ((noinline))
+my_inf64 (void)
+{
+  decimal::decimal64 o = 1;
+  decimal::decimal64 z = 0;
+  decimal::decimal64 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal::decimal64 v;
+
+  v = my_nan64 ();
+  if (!__builtin_isnand64 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd64 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isnand64 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd64 (v.__getval ()))
+    __builtin_abort ();
+
+  v = my_inf64 ();
+  if (!__builtin_isinfd64 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd64 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isinfd64 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd64 (v.__getval ()))
+    __builtin_abort ();
+
+  return 0;
+}
+
Index: libstdc++-v3/testsuite/decimal/pr54036-3.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-3.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-3.cc	(revision 0)
@@ -0,0 +1,56 @@
+#include <decimal/decimal>
+using namespace std;
+
+decimal::decimal128
+__attribute__ ((noinline))
+my_nan128 (void)
+{
+  decimal::decimal128 z = 0;
+  decimal::decimal128 v = z/z;
+  return v;
+}
+
+decimal::decimal128
+__attribute__ ((noinline))
+my_inf128 (void)
+{
+  decimal::decimal128 o = 1;
+  decimal::decimal128 z = 0;
+  decimal::decimal128 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal::decimal128 v;
+
+  v = my_nan128 ();
+  if (!__builtin_isnand128 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd128 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isnand128 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd128 (v.__getval ()))
+    __builtin_abort ();
+
+  v = my_inf128 ();
+  if (!__builtin_isinfd128 (v.__getval ()))
+    __builtin_abort ();
+  if (__builtin_signbitd128 (v.__getval ()))
+    __builtin_abort ();
+
+  v = -v;
+
+  if (!__builtin_isinfd128 (v.__getval ()))
+    __builtin_abort ();
+  if (!__builtin_signbitd128 (v.__getval ()))
+    __builtin_abort ();
+
+  return 0;
+}
+

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-01 23:54     ` Peter Bergner
@ 2012-08-02  9:37       ` Paolo Carlini
  2012-08-03  5:01         ` Peter Bergner
  0 siblings, 1 reply; 9+ messages in thread
From: Paolo Carlini @ 2012-08-02  9:37 UTC (permalink / raw)
  To: Peter Bergner; +Cc: Janis Johnson, gcc-patches, libstdc++

Hi,

On 08/02/2012 01:53 AM, Peter Bergner wrote:
> So just to be sure, like the patch below?
More or less. See comments below.
> Also, is this ok for the 4.6 and 4.7 release branches?
I don't think this is a regression, thus I would say 4.7 only, to be safe.
> Peter
>
>
> libstdc++-v3/
> 	PR libstdc++/54036
> 	* include/decimal/decimal.h (_DEFINE_DECIMAL_UNARY_OP): Use _Op as
> 	a unary operator.
>
> libstdc++-v3/testsuite/
> 	PR libstdc++/54036
> 	* decimal/pr54036-1.cc: New test.
> 	* decimal/pr54036-2.cc: Likewise.
> 	* decimal/pr54036-3.cc: Likewise.
we don't have a separate ChangeLog in libstdc++-v3/testsuite/. Thus a 
single ChangeLog entry for everything.
>
> Index: libstdc++-v3/include/decimal/decimal.h
> ===================================================================
> --- libstdc++-v3/include/decimal/decimal.h	(revision 189599)
> +++ libstdc++-v3/include/decimal/decimal.h	(working copy)
> @@ -288,7 +288,7 @@
>     inline _Tp operator _Op(_Tp __rhs)		\
>     {						\
>       _Tp __tmp;					\
> -    __tmp.__setval(0 _Op __rhs.__getval());	\
> +    __tmp.__setval(_Op __rhs.__getval());	\
>       return __tmp;				\
>     }
>   
> Index: libstdc++-v3/testsuite/decimal/pr54036-1.cc
> ===================================================================
> --- libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
> +++ libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
> @@ -0,0 +1,56 @@
Copyright blurb missing. Also, you need:

// { dg-require-effective-target dfp }

Likewise for the other testcases.

> +#include <decimal/decimal>
> +using namespace std;
> +
> +decimal::decimal32
> +__attribute__ ((noinline))
> +my_nan32 (void)
> +{
> +  decimal::decimal32 z = 0;
> +  decimal::decimal32 v = z/z;
> +  return v;
> +}
> +
> +decimal::decimal32
> +__attribute__ ((noinline))
> +my_inf32 (void)
> +{
> +  decimal::decimal32 o = 1;
> +  decimal::decimal32 z = 0;
> +  decimal::decimal32 v = o/z;
> +  return v;
> +}
> +
> +int
> +main (void)
> +{
> +  decimal::decimal32 v;
> +
> +  v = my_nan32 ();
> +  if (!__builtin_isnand32 (v.__getval ()))
> +    __builtin_abort ();
> +  if (__builtin_signbitd32 (v.__getval ()))
> +    __builtin_abort ();
> +
> +  v = -v;
> +
> +  if (!__builtin_isnand32 (v.__getval ()))
> +    __builtin_abort ();
> +  if (!__builtin_signbitd32 (v.__getval ()))
> +    __builtin_abort ();
> +
> +  v = my_inf32 ();
> +  if (!__builtin_isinfd32 (v.__getval ()))
> +    __builtin_abort ();
> +  if (__builtin_signbitd32 (v.__getval ()))
> +    __builtin_abort ();
> +
> +  v = -v;
> +
> +  if (!__builtin_isinfd32 (v.__getval ()))
> +    __builtin_abort ();
> +  if (!__builtin_signbitd32 (v.__getval ()))
> +    __builtin_abort ();
> +
> +  return 0;
> +}
> +
In the library testsuite we include:

#include <testsuite_hooks.h>

and then we use VERIFY not __builtin_abort. Also, for decimal, we 
normally use:

using namespace std::decimal.

Please have the other existing decimal floating point testcases as 
reference, for these details, please try to be consistent.

Also, watch out blank lines at the end of the testcases.

Paolo.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-02  9:37       ` Paolo Carlini
@ 2012-08-03  5:01         ` Peter Bergner
  2012-08-03  9:29           ` Paolo Carlini
  0 siblings, 1 reply; 9+ messages in thread
From: Peter Bergner @ 2012-08-03  5:01 UTC (permalink / raw)
  To: Paolo Carlini; +Cc: Janis Johnson, gcc-patches, libstdc++

On Thu, 02 Aug 2012 11:36:42 Paolo Carlini wrote:
> > Also, is this ok for the 4.6 and 4.7 release branches?
> I don't think this is a regression, thus I would say 4.7 only, to be safe.

Ok.


> we don't have a separate ChangeLog in libstdc++-v3/testsuite/. Thus a 
> single ChangeLog entry for everything.

Fixed.


> > Index: libstdc++-v3/testsuite/decimal/pr54036-1.cc
> > ===================================================================
> > --- libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
> > +++ libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
> > @@ -0,0 +1,56 @@
> Copyright blurb missing. Also, you need:
> 
> // { dg-require-effective-target dfp }

Fixed.


> In the library testsuite we include:
> 
> #include <testsuite_hooks.h>
> 
> and then we use VERIFY not __builtin_abort. Also, for decimal, we 
> normally use:
> 
> using namespace std::decimal.

Fixed.

Ok, once more with feeling! :)  How about the updated patched below?
...and thank you for the gentle review.  This is my first libstdc++
patch and I guess I was used to the normal gcc/testsuite/ tests
that don't include copyright headers and the like.  I'll try to
be more careful in the future.

Peter


libstdc++-v3/
	PR libstdc++/54036
	* include/decimal/decimal.h (_DEFINE_DECIMAL_UNARY_OP): Use _Op as
	a unary operator.
	* testsuite/decimal/pr54036-1.cc: New test.
	* testsuite/decimal/pr54036-2.cc: Likewise.
	* testsuite/decimal/pr54036-3.cc: Likewise.

Index: libstdc++-v3/include/decimal/decimal.h
===================================================================
--- libstdc++-v3/include/decimal/decimal.h	(revision 189599)
+++ libstdc++-v3/include/decimal/decimal.h	(working copy)
@@ -288,7 +288,7 @@
   inline _Tp operator _Op(_Tp __rhs)		\
   {						\
     _Tp __tmp;					\
-    __tmp.__setval(0 _Op __rhs.__getval());	\
+    __tmp.__setval(_Op __rhs.__getval());	\
     return __tmp;				\
   }
 
Index: libstdc++-v3/testsuite/decimal/pr54036-1.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-1.cc	(revision 0)
@@ -0,0 +1,70 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-require-effective-target dfp }
+
+#include <decimal/decimal>
+#include <testsuite_hooks.h>
+
+using namespace std::decimal;
+
+decimal32
+__attribute__ ((noinline))
+my_nan32 (void)
+{
+  decimal32 z = 0;
+  decimal32 v = z/z;
+  return v;
+}
+
+decimal32
+__attribute__ ((noinline))
+my_inf32 (void)
+{
+  decimal32 o = 1;
+  decimal32 z = 0;
+  decimal32 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal32 v;
+
+  v = my_nan32 ();
+
+  VERIFY (__builtin_isnand32 (v.__getval ()));
+  VERIFY (!__builtin_signbitd32 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isnand32 (v.__getval ()));
+  VERIFY (__builtin_signbitd32 (v.__getval ()))
+
+  v = my_inf32 ();
+
+  VERIFY (__builtin_isinfd32 (v.__getval ()));
+  VERIFY (!__builtin_signbitd32 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isinfd32 (v.__getval ()));
+  VERIFY (__builtin_signbitd32 (v.__getval ()))
+
+  return 0;
+}
Index: libstdc++-v3/testsuite/decimal/pr54036-2.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-2.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-2.cc	(revision 0)
@@ -0,0 +1,70 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-require-effective-target dfp }
+
+#include <decimal/decimal>
+#include <testsuite_hooks.h>
+
+using namespace std::decimal;
+
+decimal64
+__attribute__ ((noinline))
+my_nan64 (void)
+{
+  decimal64 z = 0;
+  decimal64 v = z/z;
+  return v;
+}
+
+decimal64
+__attribute__ ((noinline))
+my_inf64 (void)
+{
+  decimal64 o = 1;
+  decimal64 z = 0;
+  decimal64 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal64 v;
+
+  v = my_nan64 ();
+
+  VERIFY (__builtin_isnand64 (v.__getval ()));
+  VERIFY (!__builtin_signbitd64 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isnand64 (v.__getval ()));
+  VERIFY (__builtin_signbitd64 (v.__getval ()))
+
+  v = my_inf64 ();
+
+  VERIFY (__builtin_isinfd64 (v.__getval ()));
+  VERIFY (!__builtin_signbitd64 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isinfd64 (v.__getval ()));
+  VERIFY (__builtin_signbitd64 (v.__getval ()))
+
+  return 0;
+}
Index: libstdc++-v3/testsuite/decimal/pr54036-3.cc
===================================================================
--- libstdc++-v3/testsuite/decimal/pr54036-3.cc	(revision 0)
+++ libstdc++-v3/testsuite/decimal/pr54036-3.cc	(revision 0)
@@ -0,0 +1,70 @@
+// Copyright (C) 2012 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// { dg-require-effective-target dfp }
+
+#include <decimal/decimal>
+#include <testsuite_hooks.h>
+
+using namespace std::decimal;
+
+decimal128
+__attribute__ ((noinline))
+my_nan128 (void)
+{
+  decimal128 z = 0;
+  decimal128 v = z/z;
+  return v;
+}
+
+decimal128
+__attribute__ ((noinline))
+my_inf128 (void)
+{
+  decimal128 o = 1;
+  decimal128 z = 0;
+  decimal128 v = o/z;
+  return v;
+}
+
+int
+main (void)
+{
+  decimal128 v;
+
+  v = my_nan128 ();
+
+  VERIFY (__builtin_isnand128 (v.__getval ()));
+  VERIFY (!__builtin_signbitd128 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isnand128 (v.__getval ()));
+  VERIFY (__builtin_signbitd128 (v.__getval ()))
+
+  v = my_inf128 ();
+
+  VERIFY (__builtin_isinfd128 (v.__getval ()));
+  VERIFY (!__builtin_signbitd128 (v.__getval ()))
+
+  v = -v;
+
+  VERIFY (__builtin_isinfd128 (v.__getval ()));
+  VERIFY (__builtin_signbitd128 (v.__getval ()))
+
+  return 0;
+}



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-03  5:01         ` Peter Bergner
@ 2012-08-03  9:29           ` Paolo Carlini
  2012-08-13 22:15             ` Peter Bergner
  0 siblings, 1 reply; 9+ messages in thread
From: Paolo Carlini @ 2012-08-03  9:29 UTC (permalink / raw)
  To: Peter Bergner; +Cc: Janis Johnson, gcc-patches, libstdc++

Hi,

On 08/03/2012 07:00 AM, Peter Bergner wrote:
> Fixed.
>
> Ok, once more with feeling! :)  How about the updated patched below?
> ...and thank you for the gentle review.  This is my first libstdc++
> patch and I guess I was used to the normal gcc/testsuite/ tests
> that don't include copyright headers and the like.  I'll try to
> be more careful in the future.
No problem ;) Patch is Ok, thanks!

Paolo.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs
  2012-08-03  9:29           ` Paolo Carlini
@ 2012-08-13 22:15             ` Peter Bergner
  0 siblings, 0 replies; 9+ messages in thread
From: Peter Bergner @ 2012-08-13 22:15 UTC (permalink / raw)
  To: Paolo Carlini; +Cc: Janis Johnson, gcc-patches, libstdc++

On 08/03/2012 11:28:57 +0200 Paolo Carlini wrote:
> No problem ;) Patch is Ok, thanks!

Hi Paolo,

I see you committed the patch for me.  Thanks!!  I literally posted
that last patch just minutes before heading out on vacation and didn't
want to commit it just before I left in case it caused any fallout.
Thanks again for your reviews and committing the patch for me!

Peter

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-08-13 22:15 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-31 23:17 PING [PATCH] Fix PR libstdc++/54036, problem negating DFP NaNs Peter Bergner
2012-08-01 14:00 ` Jason Merrill
2012-08-01 14:29 ` Paolo Carlini
2012-08-01 15:24   ` Janis Johnson
2012-08-01 23:54     ` Peter Bergner
2012-08-02  9:37       ` Paolo Carlini
2012-08-03  5:01         ` Peter Bergner
2012-08-03  9:29           ` Paolo Carlini
2012-08-13 22:15             ` Peter Bergner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).