Commit 8ceabd25 by Uros Bizjak Committed by Kaz Kojima

target-supports.exp (add_options_for_ieee): New procedure.

	* lib/target-supports.exp (add_options_for_ieee): New procedure.
	* g++.dg/cdce3.C: Use dg-add-options ieee.
	* g++.dg/torture/type-generic-1.C: Likewise.
	* gcc.c-torture/compile/fix-trunc-mem-1.c: Likewise.
	* gcc.dg/pr28796-2.c: Likewise.
	* gcc.dg/torture/builtin-math-7.c: Likewise.
	* gcc.dg/torture/type-generic-1.c: Likewise.
	* gfortran.dg/boz_14.f90: Likewise.
	* gfortran.dg/erf_2.F90: Likewise.
	* gfortran.dg/init_flag_3.f90: Likewise.
	* gfortran.dg/init_flag_4.f90: Likewise.
	* gfortran.dg/init_flag_5.f90: Likewise.
	* gfortran.dg/integer_exponentiation_1.f90: Likewise.
	* gfortran.dg/integer_exponentiation_5.F90: Likewise.
	* gfortran.dg/isnan_1.f90: Likewise.
	* gfortran.dg/isnan_2.f90: Likewise.
	* gfortran.dg/maxlocval_2.f90: Likewise.
	* gfortran.dg/maxlocval_4.f90: Likewise.
	* gfortran.dg/minlocval_1.f90: Likewise.
	* gfortran.dg/minlocval_4.f90: Likewise.
	* gfortran.dg/module_nan.f90: Likewise.
	* gfortran.dg/namelist_42.f90: Likewise.
	* gfortran.dg/namelist_43.f90: Likewise.
	* gfortran.dg/nan_1.f90: Likewise.
	* gfortran.dg/nan_2.f90: Likewise.
	* gfortran.dg/nan_3.f90: Likewise.
	* gfortran.dg/nan_4.f90: Likewise.
	* gfortran.dg/nan_5.f90: Likewise.
	* gfortran.dg/nearest_1.f90: Likewise.
	* gfortran.dg/nearest_2.f90: Likewise.
	* gfortran.dg/nearest_3.f90: Likewise.
	* gfortran.dg/pr37243.f: Likewise.
	* gfortran.dg/real_const_3.f90: Likewise.
	* gfortran.dg/transfer_simplify_2.f90: Likewise.


Co-Authored-By: Kaz Kojima <kkojima@gcc.gnu.org>

From-SVN: r151250
parent f9329c35
2009-08-31 Uros Bizjak <ubizjak@gmail.com>
Kaz Kojima <kkojima@gcc.gnu.org>
* lib/target-supports.exp (add_options_for_ieee): New procedure.
* g++.dg/cdce3.C: Use dg-add-options ieee.
* g++.dg/torture/type-generic-1.C: Likewise.
* gcc.c-torture/compile/fix-trunc-mem-1.c: Likewise.
* gcc.dg/pr28796-2.c: Likewise.
* gcc.dg/torture/builtin-math-7.c: Likewise.
* gcc.dg/torture/type-generic-1.c: Likewise.
* gfortran.dg/boz_14.f90: Likewise.
* gfortran.dg/erf_2.F90: Likewise.
* gfortran.dg/init_flag_3.f90: Likewise.
* gfortran.dg/init_flag_4.f90: Likewise.
* gfortran.dg/init_flag_5.f90: Likewise.
* gfortran.dg/integer_exponentiation_1.f90: Likewise.
* gfortran.dg/integer_exponentiation_5.F90: Likewise.
* gfortran.dg/isnan_1.f90: Likewise.
* gfortran.dg/isnan_2.f90: Likewise.
* gfortran.dg/maxlocval_2.f90: Likewise.
* gfortran.dg/maxlocval_4.f90: Likewise.
* gfortran.dg/minlocval_1.f90: Likewise.
* gfortran.dg/minlocval_4.f90: Likewise.
* gfortran.dg/module_nan.f90: Likewise.
* gfortran.dg/namelist_42.f90: Likewise.
* gfortran.dg/namelist_43.f90: Likewise.
* gfortran.dg/nan_1.f90: Likewise.
* gfortran.dg/nan_2.f90: Likewise.
* gfortran.dg/nan_3.f90: Likewise.
* gfortran.dg/nan_4.f90: Likewise.
* gfortran.dg/nan_5.f90: Likewise.
* gfortran.dg/nearest_1.f90: Likewise.
* gfortran.dg/nearest_2.f90: Likewise.
* gfortran.dg/nearest_3.f90: Likewise.
* gfortran.dg/pr37243.f: Likewise.
* gfortran.dg/real_const_3.f90: Likewise.
* gfortran.dg/transfer_simplify_2.f90: Likewise.
2009-08-31 Dodji Seketeli <dodji@redhat.com> 2009-08-31 Dodji Seketeli <dodji@redhat.com>
PR debug/30161 PR debug/30161
......
...@@ -4,12 +4,12 @@ ...@@ -4,12 +4,12 @@
/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { {! pow10 } && large_long_double } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { {! pow10 } && large_long_double } } } */
/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { pow10 && {! large_long_double } } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { pow10 && {! large_long_double } } } } */
/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { {! pow10 } && {! large_long_double } } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { {! pow10 } && {! large_long_double } } } } */
/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { pow10 && large_long_double } } } } */ /* { dg-add-options ieee } */
/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { {! pow10 } && large_long_double } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:92: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */
/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { alpha*-*-* && { pow10 && {! large_long_double } } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:93: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */
/* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { alpha*-*-* && { {! pow10 } && {! large_long_double } } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:97: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:99: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:99: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:100: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:100: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
...@@ -21,9 +21,6 @@ ...@@ -21,9 +21,6 @@
/* { dg-final { scan-tree-dump "cdce3.C:106: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:106: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:107: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:107: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:108: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:108: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:109: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:110: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { scan-tree-dump "cdce3.C:111: note: function call is shrink-wrapped into error conditions\." "cdce" } } */
/* { dg-final { cleanup-tree-dump "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */
#include <stdlib.h> #include <stdlib.h>
#include <math.h> #include <math.h>
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
without any fast-math flags. */ without any fast-math flags. */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } */ /* { dg-add-options ieee } */
/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */ /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
#include "../../gcc.dg/tg-tests.h" #include "../../gcc.dg/tg-tests.h"
......
/* PR target/14201 */ /* PR target/14201 */
/* Excercise float -> integer in memory patterns. */ /* Excercise float -> integer in memory patterns. */
/* { dg-options "-mieee" { target alpha*-*-* } } */ /* { dg-add-options ieee } */
void f1 (float v, int *p) { *p = v; } void f1 (float v, int *p) { *p = v; }
void f2 (float v, unsigned int*p) { *p = v; } void f2 (float v, unsigned int*p) { *p = v; }
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE" } */ /* { dg-options "-O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE" } */
/* { dg-options "-mieee -O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE" { target alpha*-*-* } } */ /* { dg-add-options ieee } */
/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */ /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
#include "tg-tests.h" #include "tg-tests.h"
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
/* { dg-do run } */ /* { dg-do run } */
/* { dg-require-effective-target mpc } */ /* { dg-require-effective-target mpc } */
/* { dg-options "-mieee" { target sh*-*-* } } */ /* { dg-add-options ieee } */
extern void link_error(int); extern void link_error(int);
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
without any fast-math flags. */ without any fast-math flags. */
/* { dg-do run } */ /* { dg-do run } */
/* { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } */
/* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */ /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
/* { dg-add-options ieee } */
#include "../tg-tests.h" #include "../tg-tests.h"
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* } } ! { dg-add-options ieee }
! PR fortran/36214 ! PR fortran/36214
! For BOZ-initialization of floats, the precision used to be wrong sometimes. ! For BOZ-initialization of floats, the precision used to be wrong sometimes.
......
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check -ffree-line-length-none " } ! { dg-options "-fno-range-check -ffree-line-length-none " }
! { dg-options "-fno-range-check -ffree-line-length-none -mieee" { target alpha*-*-* } } */ ! { dg-add-options ieee }
! !
! Check that simplification functions and runtime library agree on ERF, ! Check that simplification functions and runtime library agree on ERF,
! ERFC and ERFC_SCALED. ! ERFC and ERFC_SCALED.
......
! { dg-do run } ! { dg-do run }
! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" } ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" }
! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
program init_flag_3 program init_flag_3
......
! { dg-do run } ! { dg-do run }
! { dg-options "-finit-real=inf" } ! { dg-options "-finit-real=inf" }
! { dg-options "-finit-real=inf -mieee" { target alpha*-*-* } } */ ! { dg-add-options ieee }
program init_flag_4 program init_flag_4
call real_test call real_test
......
! { dg-do run } ! { dg-do run }
! { dg-options "-finit-real=-inf" } ! { dg-options "-finit-real=-inf" }
! { dg-options "-finit-real=-inf -mieee" { target alpha*-*-* } } */ ! { dg-add-options ieee }
program init_flag_5 program init_flag_5
call real_test call real_test
......
! { dg-do run } ! { dg-do run }
! { dg-options "-pedantic -mieee" { target alpha*-*-* } } ! { dg-add-options ieee }
! PR 30981 - this used to go into an endless loop during execution. ! PR 30981 - this used to go into an endless loop during execution.
program test program test
a = 3.0 a = 3.0
......
! { dg-do run { xfail spu-*-* } } ! { dg-do run { xfail spu-*-* } }
! FAILs on SPU because of invalid result of 1.0/0.0 inline code ! FAILs on SPU because of invalid result of 1.0/0.0 inline code
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -mieee" { target alpha*-*-* } } */ ! { dg-add-options ieee }
module mod_check module mod_check
implicit none implicit none
......
! Test for the ISNAN intrinsic ! Test for the ISNAN intrinsic
! !
! { dg-do run } ! { dg-do run }
! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
implicit none implicit none
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
! !
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
implicit none implicit none
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
real :: a(3), nan, minf, pinf real :: a(3), nan, minf, pinf
real, allocatable :: c(:) real, allocatable :: c(:)
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
real :: a(3,3), b(3), nan, minf, pinf, h real :: a(3,3), b(3), nan, minf, pinf, h
logical :: l, l2 logical :: l, l2
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
real :: a(3), nan, minf, pinf real :: a(3), nan, minf, pinf
real, allocatable :: c(:) real, allocatable :: c(:)
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
real :: a(3,3), b(3), nan, minf, pinf, h real :: a(3,3), b(3), nan, minf, pinf, h
logical :: l, l2 logical :: l, l2
......
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34318 ! PR fortran/34318
......
! { dg-do run { target fd_truncate } } ! { dg-do run { target fd_truncate } }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34427 ! PR fortran/34427
......
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34427 ! PR fortran/34427
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
! as arguments ! as arguments
! !
! { dg-do run } ! { dg-do run }
! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
module aux2 module aux2
......
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check -pedantic" } ! { dg-options "-fno-range-check -pedantic" }
! { dg-options "-fno-range-check -pedantic -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34333 ! PR fortran/34333
......
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34319 ! PR fortran/34319
......
! { dg-do compile } ! { dg-do compile }
! { dg-options "-std=gnu" } ! { dg-options "-std=gnu" }
! { dg-options "-std=gnu -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34398. ! PR fortran/34398.
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
! { dg-do compile } ! { dg-do compile }
! !
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
implicit none implicit none
......
! { dg-do run } ! { dg-do run }
! { dg-options "-O0 -ffloat-store" } ! { dg-options "-O0 -ffloat-store" }
! { dg-options "-O0 -ffloat-store -mieee" { target alpha*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "Denormals not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "Denormals not supported" { spu-*-* } { "*" } { "" } }
! PR fortran/27021 ! PR fortran/27021
! Original code submitted by Dominique d'Humieres ! Original code submitted by Dominique d'Humieres
......
! { dg-do run } ! { dg-do run }
! { dg-options "-fno-range-check" } ! { dg-options "-fno-range-check" }
! { dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! !
! PR fortran/34192 ! PR fortran/34192
! !
......
! { dg-do run } ! { dg-do run }
! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } ! { dg-add-options ieee }
! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } ! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! !
! PR fortran/34209 ! PR fortran/34209
......
! PR rtl-optimization/37243 ! PR rtl-optimization/37243
! { dg-do run } ! { dg-do run }
! { dg-options "-mieee" { target alpha*-*-* } } ! { dg-add-options ieee }
! Check if register allocator handles IR flattening correctly. ! Check if register allocator handles IR flattening correctly.
SUBROUTINE SCHMD(V,M,N,LDV) SUBROUTINE SCHMD(V,M,N,LDV)
IMPLICIT DOUBLE PRECISION(A-H,O-Z) IMPLICIT DOUBLE PRECISION(A-H,O-Z)
......
!{ dg-do run } !{ dg-do run }
!{ dg-options "-fno-range-check" } !{ dg-options "-fno-range-check" }
!{ dg-options "-fno-range-check -mieee" { target alpha*-*-* sh*-*-* } } !{ dg-add-options ieee }
!{ dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } } !{ dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
! PR19310 and PR19904, allow disabling range check during compile. ! PR19310 and PR19904, allow disabling range check during compile.
! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org> ! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
......
! { dg-do run } ! { dg-do run }
! { dg-options "-O2" } ! { dg-options "-O2" }
! { dg-options "-O2 -mieee" { target alpha*-*-* } } ! { dg-add-options ieee }
! Tests the fix for the meta-bug PR31237 (TRANSFER intrinsic) ! Tests the fix for the meta-bug PR31237 (TRANSFER intrinsic)
! Exercises gfc_simplify_transfer a random walk through types and shapes ! Exercises gfc_simplify_transfer a random walk through types and shapes
! and compares its results with the middle-end version that operates on ! and compares its results with the middle-end version that operates on
......
...@@ -2971,6 +2971,17 @@ proc add_options_for_c99_runtime { flags } { ...@@ -2971,6 +2971,17 @@ proc add_options_for_c99_runtime { flags } {
return $flags return $flags
} }
# Add to FLAGS all the target-specific flags needed to enable
# full IEEE compliance mode.
proc add_options_for_ieee { flags } {
if { [istarget "alpha*-*-*"]
|| [istarget "sh*-*-*"] } {
return "$flags -mieee"
}
return $flags
}
# Return 1 if the target provides a full C99 runtime. # Return 1 if the target provides a full C99 runtime.
proc check_effective_target_c99_runtime { } { proc check_effective_target_c99_runtime { } {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment