components/stdcxx/patches/077-7020671-18.numeric.special.patch
author Mike Sullivan <Mike.Sullivan@Oracle.COM>
Wed, 29 Aug 2012 11:05:56 -0700
changeset 957 255465c5756f
parent 402 94ae4d75524c
permissions -rw-r--r--
Close of build 04.

--- stdcxx-4.2.1/tests/support/18.numeric.special.int.cpp	2008-04-24 20:23:28.000000000 -0400
+++ stdcxx-4.2.1/tests/support/18.numeric.special.int.cpp	2011-02-18 01:55:12.861052484 -0500
@@ -49,6 +49,7 @@
     enum { is_exact };
     enum { radix };
     enum { is_bounded = false };
+    enum { traps = std::numeric_limits<T>::traps };
 
     static bool is_modulo () { return false; }
 
@@ -91,6 +92,7 @@
     enum { is_exact = true };
     enum { radix = 2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<int>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -116,6 +118,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<bool>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -144,6 +147,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<char>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
         
@@ -169,6 +173,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<signed char>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -194,6 +199,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<unsigned char>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -241,6 +247,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<wchar_t>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
         
@@ -267,6 +274,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<short>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -292,6 +300,7 @@
     enum { is_exact = true };
     enum { radix =  2 }; 
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<long>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -316,6 +325,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<unsigned short>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -340,6 +350,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<unsigned int>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -365,6 +376,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<unsigned long>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -402,6 +414,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<_RWSTD_LONG_LONG>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -430,6 +443,7 @@
     enum { is_exact = true };
     enum { radix =  2 };
     enum { is_bounded = true };
+    enum { traps = std::numeric_limits<unsigned _RWSTD_LONG_LONG>::traps };
 
     static bool is_modulo () { return ::is_modulo ((max)()); }
 
@@ -584,7 +598,7 @@
                tname, Traits::is_modulo ());
 
     // 18.2.1.2, p59
-    ASSERT_0 (traps, "%b");
+	ASSERT (traps, "%b");
 
     // 18.2.1.2, p61
     ASSERT_0 (tinyness_before, "%b");
--- stdcxx-4.2.1/tests/support/18.numeric.special.float.cpp	2008-04-24 20:23:28.000000000 -0400
+++ stdcxx-4.2.1/tests/support/18.numeric.special.float.cpp	2011-02-18 01:18:03.834115355 -0500
@@ -453,7 +453,8 @@
 
 #if defined (_AIX) \
     || defined (__hpux) \
-    || defined (__osf__)
+    || defined (__osf__) \
+    || defined (__SUNPRO_CC)
         return std::denorm_present;
 #else
         return std::denorm_indeterminate;
@@ -720,7 +721,8 @@
     static std::float_denorm_style has_denorm () {
 #if defined (_AIX) \
     || defined (__hpux) \
-    || defined (__osf__)
+    || defined (__osf__) \
+    || defined (__SUNPRO_CC)
         return std::denorm_present;
 #else
         return std::denorm_indeterminate;
@@ -980,7 +982,8 @@
     static std::float_denorm_style has_denorm () {
 #if defined (_AIX) \
     || defined (__hpux) \
-    || defined (__osf__)
+    || defined (__osf__) \
+    || defined (__SUNPRO_CC) 
         return std::denorm_present;
 #else
         return std::denorm_indeterminate;