From 5b0936da944d0e54e9efd0cac3b295553e31e8f2 Mon Sep 17 00:00:00 2001
From: Uros Bizjak <uros@gcc.gnu.org>
Date: Wed, 2 Jul 2014 10:45:08 +0200
Subject: [PATCH] configure.host (ieee_flags): Add -mieee for alpha*.

libgfortran/ChangeLog:

	* configure.host (ieee_flags): Add -mieee for alpha*.

	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.

testsuite/ChangeLog:

	* gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0.
	* gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add.

From-SVN: r212224
---
 gcc/testsuite/ChangeLog                            |  9 +++++++--
 gcc/testsuite/gfortran.dg/ieee/ieee_1.F90          |  2 +-
 gcc/testsuite/gfortran.dg/ieee/ieee_rounding_1.f90 |  1 +
 libgfortran/ChangeLog                              | 10 +++++++++-
 libgfortran/config/fpu-aix.h                       |  3 +++
 libgfortran/config/fpu-glibc.h                     |  3 +++
 libgfortran/configure.host                         |  2 ++
 7 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2947c76e3128..b364f407b46c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-02  Uros Bizjak  <ubizjak@gmail.com>
+
+	* gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0.
+	* gfortran.dg/ieee/ieee_rounding_1.f90 (dg-additional-options): Add.
+
 2014-07-02  Paolo Carlini  <paolo.carlini@oracle.com>
 
 	* g++.dg/cpp0x/variadic-ex10.C: Adjust for inform instead of error.
@@ -15,8 +20,8 @@
 	    Yufeng Zhang  <yufeng.zhang@arm.com>
 
 	* gcc.target/aarch64/aapcs64/aapcs64.exp:
-	(additional_flags_for_func_ret): New variable based on $additional_flags
-	with -fno-use-caller-save.
+	(additional_flags_for_func_ret): New variable based on
+	$additional_flags with -fno-use-caller-save.
 	(func-ret-*.c): Use the new variable.
 
 2014-07-01  Paolo Carlini  <paolo.carlini@oracle.com>
diff --git a/gcc/testsuite/gfortran.dg/ieee/ieee_1.F90 b/gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
index 9c1c4e374d4b..5c1a06198877 100644
--- a/gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
+++ b/gcc/testsuite/gfortran.dg/ieee/ieee_1.F90
@@ -1,5 +1,5 @@
 ! { dg-do run }
-! { dg-additional-options "-ffree-line-length-none -O0" }
+! { dg-additional-options "-ffree-line-length-none" }
 !
 ! Use dg-additional-options rather than dg-options to avoid overwriting the
 ! default IEEE options which are passed by ieee.exp and necessary.
diff --git a/gcc/testsuite/gfortran.dg/ieee/ieee_rounding_1.f90 b/gcc/testsuite/gfortran.dg/ieee/ieee_rounding_1.f90
index e6bf6125ecd5..c44178ee1ae4 100644
--- a/gcc/testsuite/gfortran.dg/ieee/ieee_rounding_1.f90
+++ b/gcc/testsuite/gfortran.dg/ieee/ieee_rounding_1.f90
@@ -1,4 +1,5 @@
 ! { dg-do run }
+! { dg-additional-options "-mfp-rounding-mode=d" { target alpha*-*-* } }
 
   use, intrinsic :: ieee_features, only : ieee_rounding
   use, intrinsic :: ieee_arithmetic
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 3e0331049654..bb98a6caaa85 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,11 @@
+2014-07-02  Uros Bizjak  <ubizjak@gmail.com>
+
+	* configure.host (ieee_flags): Add -mieee for alpha*.
+
+	* config/fpu-glibc.h (support_fpu_rounding_mode): Correctly handle
+	GFC_FPE_UPWARD, GFC_FPE_DOWNWARD and GFC_FPE_TOWARDZERO.
+	* config/fpu-aix.h (support_fpu_rounding_mode): Ditto.
+
 2014-06-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
 	* config/fpu-387.h (my_fenv_t): Amend structure so it also works
@@ -7,7 +15,7 @@
 
 	PR libgfortran/61640
 	* io/list_read.c (next_char_internal): Adjust the read length to
-	a single wide character. (eat_spaces): Add missing paren. 
+	a single wide character. (eat_spaces): Add missing paren.
 	* io/unix.c (mem_read4): Use the correct mem_alloc function for
 	wide character internal reads.
 
diff --git a/libgfortran/config/fpu-aix.h b/libgfortran/config/fpu-aix.h
index 6b44ab7c850e..c1079fcc1a3b 100644
--- a/libgfortran/config/fpu-aix.h
+++ b/libgfortran/config/fpu-aix.h
@@ -372,18 +372,21 @@ support_fpu_rounding_mode (int mode)
 	return 0;
 #endif
 
+      case GFC_FPE_UPWARD:
 #ifdef FE_UPWARD
 	return 1;
 #else
 	return 0;
 #endif
 
+      case GFC_FPE_DOWNWARD:
 #ifdef FE_DOWNWARD
 	return 1;
 #else
 	return 0;
 #endif
 
+      case GFC_FPE_TOWARDZERO:
 #ifdef FE_TOWARDZERO
 	return 1;
 #else
diff --git a/libgfortran/config/fpu-glibc.h b/libgfortran/config/fpu-glibc.h
index 695b9d3fbb0e..7f3c81984ab3 100644
--- a/libgfortran/config/fpu-glibc.h
+++ b/libgfortran/config/fpu-glibc.h
@@ -387,18 +387,21 @@ support_fpu_rounding_mode (int mode)
 	return 0;
 #endif
 
+      case GFC_FPE_UPWARD:
 #ifdef FE_UPWARD
 	return 1;
 #else
 	return 0;
 #endif
 
+      case GFC_FPE_DOWNWARD:
 #ifdef FE_DOWNWARD
 	return 1;
 #else
 	return 0;
 #endif
 
+      case GFC_FPE_TOWARDZERO:
 #ifdef FE_TOWARDZERO
 	return 1;
 #else
diff --git a/libgfortran/configure.host b/libgfortran/configure.host
index 72da478ac5e7..0a12a32fc8a5 100644
--- a/libgfortran/configure.host
+++ b/libgfortran/configure.host
@@ -48,6 +48,8 @@ esac
 # Some targets require additional compiler options for NaN/Inf.
 ieee_flags=
 case "${host_cpu}" in
+  alpha*)
+    ieee_flags="-mieee" ;;
   sh*)
     ieee_flags="-mieee" ;;
 esac
-- 
GitLab