From d44963af3cca13f72aa04415e380750d1ba3fc78 Mon Sep 17 00:00:00 2001
From: Janis Johnson <janis@gcc.gnu.org>
Date: Tue, 21 Nov 2006 20:35:57 +0000
Subject: [PATCH] decLibrary.c (__dec_type_swap): Add prototype.

decnumber/
	* decLibrary.c (__dec_type_swap): Add prototype.
	(__dfp_enable_traps, dfp_raise): Delete.
gcc/
	* config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
	* config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
	DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
testsuite/
	* gcc.dg/dfp/snan.c: Delete.

From-SVN: r119068
---
 gcc/ChangeLog                   |  4 ++++
 gcc/config/dfp-bit.c            | 15 ---------------
 gcc/config/dfp-bit.h            |  6 ------
 gcc/testsuite/ChangeLog         |  6 +++++-
 gcc/testsuite/gcc.dg/dfp/snan.c | 28 ----------------------------
 libdecnumber/ChangeLog          |  3 +++
 libdecnumber/decLibrary.c       | 17 +----------------
 7 files changed, 13 insertions(+), 66 deletions(-)
 delete mode 100644 gcc/testsuite/gcc.dg/dfp/snan.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e55777a6af09..74c98548750b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
 
+	* config/dfp-bit.h (CONTEXT_TRAPS, CONTEXT_ERRORS, DFP_RAISE): Delete.
+	* config/dfp-bit.c (dfp_unary_op, dfp_binary_op, dfp_compare_op,
+	DFP_TO_DFP, INT_TO_DFP, BFP_TO_DFP): Remove calls to DFP_RAISE.
+
 	* config/dfp-bit.c (dfp_binary_func): Fix typedef.
 
 2006-11-21  Douglas Gregor <doug.gregor@gmail.com>
diff --git a/gcc/config/dfp-bit.c b/gcc/config/dfp-bit.c
index 9cdf64596fa8..fafe7dc1a2dc 100644
--- a/gcc/config/dfp-bit.c
+++ b/gcc/config/dfp-bit.c
@@ -88,9 +88,6 @@ dfp_unary_op (dfp_unary_func op, DFP_C_TYPE arg)
   /* Perform the operation.  */
   op (&res, &arg1, &context);
 
-  if (CONTEXT_TRAPS && CONTEXT_ERRORS (context))
-    DFP_RAISE (0);
-
   TO_ENCODED (&encoded_result, &res, &context);
   IEEE_TO_HOST (encoded_result, &result);
   return result;
@@ -118,9 +115,6 @@ dfp_binary_op (dfp_binary_func op, DFP_C_TYPE arg_a, DFP_C_TYPE arg_b)
   /* Perform the operation.  */
   op (&res, &arg1, &arg2, &context);
 
-  if (CONTEXT_TRAPS && CONTEXT_ERRORS (context))
-    DFP_RAISE (0);
-
   TO_ENCODED (&encoded_result, &res, &context);
   IEEE_TO_HOST (encoded_result, &result);
   return result;
@@ -148,9 +142,6 @@ dfp_compare_op (dfp_binary_func op, DFP_C_TYPE arg_a, DFP_C_TYPE arg_b)
   /* Perform the comparison.  */
   op (&res, &arg1, &arg2, &context);
 
-  if (CONTEXT_TRAPS && CONTEXT_ERRORS (context))
-    DFP_RAISE (0);
-
   if (decNumberIsNegative (&res))
     result = -1;
   else if (decNumberIsZero (&res))
@@ -379,8 +370,6 @@ DFP_TO_DFP (DFP_C_TYPE f_from)
   HOST_TO_IEEE (f_from, &s_from);
   TO_INTERNAL (&s_from, &d);
   TO_ENCODED_TO (&s_to, &d, &context);
-  if (CONTEXT_TRAPS && (context.status & DEC_Inexact) != 0)
-    DFP_RAISE (DEC_Inexact);
 
   IEEE_TO_HOST_TO (s_to, &f_to);
   return f_to;
@@ -469,8 +458,6 @@ INT_TO_DFP (INT_TYPE i)
   /* Convert from the floating point string to a decimal* type.  */
   FROM_STRING (&s, buf, &context);
   IEEE_TO_HOST (s, &f);
-  if (CONTEXT_TRAPS && (context.status & DEC_Inexact) != 0)
-    DFP_RAISE (DEC_Inexact);
   return f;
 }
 #endif
@@ -519,8 +506,6 @@ BFP_TO_DFP (BFP_TYPE x)
   /* Convert from the floating point string to a decimal* type.  */
   FROM_STRING (&s, buf, &context);
   IEEE_TO_HOST (s, &f);
-  if (CONTEXT_TRAPS && (context.status & DEC_Inexact) != 0)
-    DFP_RAISE (DEC_Inexact);
   return f;
 }
 #endif
diff --git a/gcc/config/dfp-bit.h b/gcc/config/dfp-bit.h
index a6c7798982b0..dfad7d308b13 100644
--- a/gcc/config/dfp-bit.h
+++ b/gcc/config/dfp-bit.h
@@ -118,12 +118,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 extern enum rounding	__decGetRound (void);
 #define CONTEXT_ROUND	__decGetRound ()
 
-extern int __dfp_traps;
-#define CONTEXT_TRAPS	__dfp_traps
-#define CONTEXT_ERRORS(context)	context.status & DEC_Errors
-extern void __dfp_raise (int);
-#define DFP_RAISE(A)	__dfp_raise(A)
-
 /* Conversions between different decimal float types use WIDTH_TO to
    determine additional macros to define.  */
 
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 592794380a51..fc8a3ed5bf16 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,4 +1,8 @@
-2006-11-21      Douglas Gregor <doug.gregor@gmail.com>
+2006-11-21  Janis Johnson  <janis187@us.ibm.com>
+
+	* gcc.dg/dfp/snan.c: Delete.
+
+2006-11-21  Douglas Gregor  <doug.gregor@gmail.com>
 
         * g++.dg/cpp0x/static_assert1.C: New.
         * g++.dg/cpp0x/static_assert2.C: New.
diff --git a/gcc/testsuite/gcc.dg/dfp/snan.c b/gcc/testsuite/gcc.dg/dfp/snan.c
deleted file mode 100644
index efc6e70ee83b..000000000000
--- a/gcc/testsuite/gcc.dg/dfp/snan.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* { dg-options "" } */
-
-/* FIXME: this test needs to be conditional to systems with POSIX signals.  */
-
-#include <signal.h>
-
-extern void exit(int status);
-extern void abort(void);
-
-void go_quietly (int arg)
-{
-  exit (0);
-}
-
-int main()
-{
-  _Decimal32 d = 1.5df;
-
-  /* Enable signaling NaNs using a scaffolding libgcc function.  */
-  __dfp_enable_traps ();
-  signal (SIGFPE, go_quietly);
-
-  d = d / 0.0df;
-
-  /* Never reached.  */
-  abort ();
-  return 0;
-}
diff --git a/libdecnumber/ChangeLog b/libdecnumber/ChangeLog
index 5810ffff2d24..0068a92bfade 100644
--- a/libdecnumber/ChangeLog
+++ b/libdecnumber/ChangeLog
@@ -1,5 +1,8 @@
 2006-11-21  Janis Johnson  <janis187@us.ibm.com>
 
+	* decLibrary.c (__dec_type_swap): Add prototype.
+	(__dfp_enable_traps, dfp_raise): Delete.
+
 	* Makefile.in: Don't include decRound in library used by compiler.
 
 2006-10-10  Brooks Moses  <bmoses@stanford.edu> 
diff --git a/libdecnumber/decLibrary.c b/libdecnumber/decLibrary.c
index 19468ac892ea..f757ffa67d0f 100644
--- a/libdecnumber/decLibrary.c
+++ b/libdecnumber/decLibrary.c
@@ -31,8 +31,7 @@ void __host_to_ieee_128 (_Decimal128, decimal128 *);
 extern int isinfd32 (_Decimal32);
 extern int isinfd64 (_Decimal64);
 extern int isinfd128 (_Decimal128);
-extern void __dfp_enable_traps (void);
-extern void __dfp_raise (int exception __attribute__ ((unused)));
+uint32_t __dec_byte_swap (uint32_t);
 
 int
 isinfd32 (_Decimal32 arg)
@@ -67,20 +66,6 @@ isinfd128 (_Decimal128 arg)
   return (decNumberIsInfinite (&dn));
 }
 
-int __dfp_traps;
-
-void
-__dfp_enable_traps (void)
-{
-  __dfp_traps = 1;
-}
-
-void
-__dfp_raise (int exception __attribute__ ((unused)))
-{
-  raise (SIGFPE);
-}
-
 uint32_t
 __dec_byte_swap (uint32_t in)
 {
-- 
GitLab