This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
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.
Peterwe don't have a separate ChangeLog in libstdc++-v3/testsuite/. Thus a single ChangeLog entry for everything.
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.
Copyright blurb missing. Also, you need:
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;
+}
+
In the library testsuite we include:| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |