diff options
author | Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> | 2014-08-20 09:08:57 +0200 |
---|---|---|
committer | Joost VandeVondele <vondele@gcc.gnu.org> | 2014-08-20 07:08:57 +0000 |
commit | 321bff11a3a1f0e3ecc925304b05f25bb72c9c94 (patch) | |
tree | ee7360378ccc2e8a7358c023cf447aca11413298 | |
parent | dd3ff077ef4ae24b35d15da9ee474ba096652b4e (diff) | |
download | gcc-321bff11a3a1f0e3ecc925304b05f25bb72c9c94.zip gcc-321bff11a3a1f0e3ecc925304b05f25bb72c9c94.tar.gz gcc-321bff11a3a1f0e3ecc925304b05f25bb72c9c94.tar.bz2 |
options.c (gfc_init_options_struct): assert that the frontend sets flag_errno_math and flag_associative_math.
gcc/fortran/ChangeLog:
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
* options.c (gfc_init_options_struct): assert that the frontend sets
flag_errno_math and flag_associative_math.
gcc/testsuite/ChangeLog:
2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch>
* gfortran.dg/errnocheck_1.f90: New test.
* gfortran.dg/associative_1.f90: New test.
From-SVN: r214211
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/options.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/associative_1.f90 | 10 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/errnocheck_1.f90 | 8 |
5 files changed, 30 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 53d2691..9d939ea 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> + + * options.c (gfc_init_options_struct): assert that the frontend sets + flag_errno_math and flag_associative_math. + 2014-08-17 Tobias Burnus <burnus@net-b.de> * resolve.c (gfc_resolve_finalizers): Ensure that parents are diff --git a/gcc/fortran/options.c b/gcc/fortran/options.c index 508a01c..2f4338e 100644 --- a/gcc/fortran/options.c +++ b/gcc/fortran/options.c @@ -66,7 +66,9 @@ void gfc_init_options_struct (struct gcc_options *opts) { opts->x_flag_errno_math = 0; + opts->frontend_set_flag_errno_math = true; opts->x_flag_associative_math = -1; + opts->frontend_set_flag_associative_math = true; } /* Get ready for options handling. Keep in sync with diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index dc10ea9..b8473c3 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-08-20 Joost VandeVondele <Joost.VandeVondele@mat.ethz.ch> + + * gfortran.dg/errnocheck_1.f90: New test. + * gfortran.dg/associative_1.f90: New test. + 2014-08-20 Manuel López-Ibáñez <manu@gcc.gnu.org> PR preprocessor/51303 diff --git a/gcc/testsuite/gfortran.dg/associative_1.f90 b/gcc/testsuite/gfortran.dg/associative_1.f90 new file mode 100644 index 0000000..c4103a7 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/associative_1.f90 @@ -0,0 +1,10 @@ +! { dg-do compile } +! { dg-options "-O1 -fno-signed-zeros -fno-trapping-math -fdump-tree-optimized" } +! Fortran defaults to associative by default, +! with -fno-signed-zeros -fno-trapping-math this should optimize away all additions +SUBROUTINE S1(a) + REAL :: a + a=1+a-1 +END SUBROUTINE S1 +! { dg-final { scan-tree-dump-times " \\\+ " 0 "optimized" } } +! { dg-final { cleanup-tree-dump "optimized" } } diff --git a/gcc/testsuite/gfortran.dg/errnocheck_1.f90 b/gcc/testsuite/gfortran.dg/errnocheck_1.f90 new file mode 100644 index 0000000..d9cf994 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/errnocheck_1.f90 @@ -0,0 +1,8 @@ +! { dg-do compile { target x86_64-*-* } } +! Fortran should default to -fno-math-errno +! and thus no call to sqrt in asm +subroutine mysqrt(a) + real(KIND=KIND(0.0D0)) :: a + a=sqrt(a) +end subroutine +! { dg-final { scan-assembler-times "call" 0 } } |