[Bug fortran/53326] -finit-integer, -finit-real and INTENT(OUT)

2015-10-08 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53326

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2015-10-08
 Ever confirmed|0   |1

--- Comment #2 from Dominique d'Humieres  ---
Still present on trunk (6.0) at r228594.


[Bug fortran/53326] -finit-integer, -finit-real and INTENT(OUT)

2012-05-11 Thread arnaud02 at users dot sourceforge.net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53326

--- Comment #1 from Arnaud Desitter arnaud02 at users dot sourceforge.net 
2012-05-11 17:31:12 UTC ---
Consider:
cat UIN15-int.f
!! check whether uninitialised variables are detected
!! for INTENT(OUT) arrays
  program uin
  integer x(10)
  x = 2
  call sub2(x,size(x))  ! x undefined on return
  write(*,*) x(1)
  end
  subroutine sub2(x,n)
  integer, intent(in) :: n
  integer, intent(out) ::  x(n)
  end
gfortran470 -finit-integer=10 UIN15-int.f
abg-ecldev01:/tmp/arnaud./a.out
   2

cat UIN15-double.f
!! check whether uninitialised variables are detected
!! for INTENT(OUT) arrays
  program uin
  double precision x(10)
  x = 2
  call sub2(x,size(x))  ! x undefined on return
  write(*,*) x(1)
  end
  subroutine sub2(x,n)
  integer, intent(in) :: n
  double precision, intent(out) ::  x(n)
  end
gfortran470 -finit-real=snan UIN15-double.f
./a.out
   2.

As seen above, -finit-real and -finit-integer have no effect on INTENT(OUT)
variables. This would be a nice and useful improvement.
Note that the NAG compiler (-nan) and the Sun compiler (-xcheck=init_local
-stackvar) implement this feature.

(tests UNI15 of http://ftp.aset.psu.edu/pub/ger/fortran/test/results.txt are
related)