This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/51589] New: Modification of loop index variable by intent(out) or intent(inout) procedures
- From: "w6ws at earthlink dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 16 Dec 2011 21:31:09 +0000
- Subject: [Bug fortran/51589] New: Modification of loop index variable by intent(out) or intent(inout) procedures
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51589
Bug #: 51589
Summary: Modification of loop index variable by intent(out) or
intent(inout) procedures
Classification: Unclassified
Product: gcc
Version: 4.6.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: w6ws@earthlink.net
In the following snippet of code, the loop index variable is passed to
procedures via either intent(out) or intent(inout) dummy arguments. In the
first of these cases, intent(out), gfortran should give a "Variable 'i' at (1)
cannot be redefined inside loop" error but does not. Even with --pedantic. It
is arguable whether the second should give the same error, or just a warning.
Note that Intel 12.1 gives warnings for both usages. The resulting code only
runs for one iteration. With gfortran, it ends up in an infinite loop.
wws@w6ws-4:~/fortran/intents$ cat intents.f90
program intents
implicit none
integer :: i
do, i=1,10
call sub1 (i)
print *, i
call sub2 (i)
print *, i
end do
contains
subroutine sub1 (idx)
integer, intent(inout) :: idx
idx = 42
end subroutine
subroutine sub2 (idx)
integer, intent(out) :: idx
idx = 11
end subroutine
end program
wws@w6ws-4:~/fortran/intents$ gfortran --pedantic intents.f90
wws@w6ws-4:~/fortran/intents$ gfortran --version
GNU Fortran (Ubuntu/Linaro 4.6.1-9ubuntu3) 4.6.1
Copyright (C) 2011 Free Software Foundation, Inc.
GNU Fortran comes with NO WARRANTY, to the extent permitted by law.
You may redistribute copies of GNU Fortran
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING
wws@w6ws-4:~/fortran/intents$