From: vondele Date: Wed, 20 Aug 2014 07:08:57 +0000 (+0000) Subject: gcc/fortran/ChangeLog: X-Git-Tag: upstream/5.3.0~6215 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5b628e21bf713484a563ce08344c67fc6fa403b;p=platform%2Fupstream%2Flinaro-gcc.git gcc/fortran/ChangeLog: 2014-08-20 Joost VandeVondele * 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 * gfortran.dg/errnocheck_1.f90: New test. * gfortran.dg/associative_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214211 138bc75d-0d04-0410-961f-82ee72b054a4 --- 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 + + * options.c (gfc_init_options_struct): assert that the frontend sets + flag_errno_math and flag_associative_math. + 2014-08-17 Tobias Burnus * 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 + + * gfortran.dg/errnocheck_1.f90: New test. + * gfortran.dg/associative_1.f90: New test. + 2014-08-20 Manuel López-Ibáñez 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 } }