This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/53326] -finit-integer, -finit-real and INTENT(OUT)
- From: "arnaud02 at users dot sourceforge.net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 11 May 2012 17:31:12 +0000
- Subject: [Bug fortran/53326] -finit-integer, -finit-real and INTENT(OUT)
- Auto-submitted: auto-generated
- References: <bug-53326-4@http.gcc.gnu.org/bugzilla/>
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.0000000000000000
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)