]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/50619 (Surprising interaction between -finit-real=NAN and the associat...
authorTobias Burnus <burnus@net-b.de>
Tue, 5 Jun 2012 13:05:31 +0000 (15:05 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Tue, 5 Jun 2012 13:05:31 +0000 (15:05 +0200)
2012-06-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50619
        * resolve.c (build_default_init_expr): Don't initialize
        ASSOCIATE names.

2012-06-05  Tobias Burnus  <burnus@net-b.de>

        PR fortran/50619
        * gfortran.dg/init_flag_10.f90: New.

From-SVN: r188237

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/init_flag_10.f90 [new file with mode: 0644]

index c5654f63b69e0a2feea462379bdb414eaf4f1275..0d779f93f3450e9aa459437eb0a0f5b9c09e1fe4 100644 (file)
@@ -1,3 +1,9 @@
+2012-06-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50619
+       * resolve.c (build_default_init_expr): Don't initialize
+       ASSOCIATE names.
+
 2012-06-01  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/53521
index 4ee70932bc84f8b6c931851383d0964c4c06ef3a..3e795ce1639dfa02093e2679f2af9cdab8edde35 100644 (file)
@@ -9700,7 +9700,8 @@ build_default_init_expr (gfc_symbol *sym)
       || sym->attr.data
       || sym->module
       || sym->attr.cray_pointee
-      || sym->attr.cray_pointer)
+      || sym->attr.cray_pointer
+      || sym->assoc)
     return NULL;
 
   /* Now we'll try to build an initializer expression.  */
index c5f0759ca4d46f536b0810dcadd31468f4f12215..d838f8bfda37f54af367255adceaabab687a3cb0 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-05  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50619
+       * gfortran.dg/init_flag_10.f90: New.
+
 2012-06-04  Edmar Wienskoski  <edmar@freescale.com>
 
        PR target/53559
diff --git a/gcc/testsuite/gfortran.dg/init_flag_10.f90 b/gcc/testsuite/gfortran.dg/init_flag_10.f90
new file mode 100644 (file)
index 0000000..826a34b
--- /dev/null
@@ -0,0 +1,43 @@
+! { dg-do run }
+! { dg-options "-finit-real=NAN" }
+! { dg-add-options ieee }
+! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
+!
+! PR fortran/50619
+!
+! Contributed by Fred Krogh
+!
+! The NaN initialization used to set the associate name to NaN!
+!
+
+module testa2
+type, public ::  test_ty
+  real :: rmult = 1.0e0
+end type test_ty
+
+contains
+  subroutine test(e, var1)
+    type(test_ty) :: e
+    real :: var1, var2 ! Should get NaN initialized
+
+    ! Should be the default value
+    if (e%rmult /= 1.0) call abort ()
+
+    ! Check that NaN initialization is really turned on
+    if (var1 == var1) call abort () 
+    if (var2 == var2) call abort () 
+
+    ! The following was failing:
+    associate (rmult=>e%rmult)
+      if (e%rmult /= 1.0) call abort ()
+    end associate
+  end subroutine test
+end module testa2
+
+program testa1
+  use testa2
+  type(test_ty) :: e
+  real :: var1 ! Should get NaN initialized
+  call test(e, var1)
+  stop
+end program testa1