]> git.ipfire.org Git - thirdparty/gcc.git/commit
Static analysis for definition of DO index variables in contained procedures.
authorThomas Koenig <tkoenig@gcc.gnu.org>
Wed, 5 Aug 2020 16:37:32 +0000 (18:37 +0200)
committerGiuliano Belinassi <giuliano.belinassi@usp.br>
Mon, 17 Aug 2020 18:07:40 +0000 (15:07 -0300)
commitfbb422414ece6e9d7d11bb92aa1a16e293ac0620
tree01cc6b997613de7121fcab33a33e669053c8cc40
parente39bab3091ff4641e935f7a565cbafd25a299ad1
Static analysis for definition of DO index variables in contained procedures.

When encountering a procedure call in a DO loop, this patch checks if
the call is to a contained procedure, and if it is, check for
changes in the index variable.

gcc/fortran/ChangeLog:

PR fortran/96469
* frontend-passes.c (doloop_contained_function_call): New
function.
(doloop_contained_procedure_code): New function.
(CHECK_INQ): Macro for inquire checks.
(doloop_code): Invoke doloop_contained_procedure_code and
doloop_contained_function_call if appropriate.
(do_intent): Likewise.

gcc/testsuite/ChangeLog:

PR fortran/96469
* gfortran.dg/do_check_4.f90: Hide change in index variable
from compile-time analysis.
* gfortran.dg/do_check_13.f90: New test.
gcc/fortran/frontend-passes.c
gcc/testsuite/gfortran.dg/do_check_13.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/do_check_4.f90