re PR fortran/50619 (Surprising interaction between -finit-real=NAN and the associate construct)
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
This commit is contained in:
parent
0e1dd874f8
commit
a67cfde819
|
@ -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>
|
||||
|
||||
|
|
|
@ -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. */
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue