re PR fortran/50619 (Surprising interaction between -finit-real=NAN and the associat...
authorTobias Burnus <burnus@net-b.de>
Mon, 4 Jun 2012 21:01:02 +0000 (23:01 +0200)
committerTobias Burnus <burnus@gcc.gnu.org>
Mon, 4 Jun 2012 21:01:02 +0000 (23:01 +0200)
2012-06-04  Tobias Burnus  <burnus@net-b.de>

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

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

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

From-SVN: r188208

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

index a561a8c803eb47cf1c4a7c8204a9b7fa7598df74..b3342ab777ec44d120229e70ccf5a3472f3f0a36 100644 (file)
@@ -1,3 +1,9 @@
+2012-06-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50619
+       * resolve.c (build_default_init_expr): Don't initialize
+       ASSOCIATE names.
+
 2012-06-03  Alessandro Fanfarillo  <fanfarillo.gcc@gmail.com>
            Tobias Burnus  <burnus@net-b.de>
 
index 3627b714a07a69abdf2b17afabbebac11834a526..61a1381a073685f3760bcf482175cf58e8952a87 100644 (file)
@@ -10103,7 +10103,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 c2d248052a1ebe80f43c31286bd534590be80e1a..ab1bf33c58d9c8108bf2c51325174dc6b650ea90 100644 (file)
@@ -1,3 +1,8 @@
+2012-06-04  Tobias Burnus  <burnus@net-b.de>
+
+       PR fortran/50619
+       * gfortran.dg/init_flag_10.f90: New.
+
 2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
 
        PR c++/53524
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