aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
authorTobias Burnus <tobias@codesourcery.com>2020-11-30 15:27:44 +0100
committerTobias Burnus <tobias@codesourcery.com>2020-11-30 15:27:44 +0100
commitf4e7ea81d1369d4d6cb6d8e440aefb3407142e05 (patch)
tree4f8d38858a78db5b1288637ff4807290bee08bda /gcc/fortran/trans-decl.c
parent2610c786f7496c5006bb68d6801ef7450bd231a9 (diff)
downloadgcc-f4e7ea81d1369d4d6cb6d8e440aefb3407142e05.zip
gcc-f4e7ea81d1369d4d6cb6d8e440aefb3407142e05.tar.gz
gcc-f4e7ea81d1369d4d6cb6d8e440aefb3407142e05.tar.bz2
Fortran: -fno-automatic and -fopenacc / recusion check cleanup
Options: -fopenmp and -fopenacc imply concurrent calls to a procedure; now also -fopenacc implies -frecursive, disabling that larger local const-size array variables use static memory. Run-time recursion check: Always reset the check variable at the end of the procedure; this avoids a bogus error with -fopenmp when called twice nonconcurrently/nonrecursively. (Issue requires using -fno-automatic or -fmax-stack-var-size= to trigger.) gcc/fortran/ChangeLog: PR fortran/98010 PR fortran/98013 * options.c (gfc_post_options): Also imply recursive with -fopenacc. * trans-decl.c (gfc_generate_function_code): Simplify condition.
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index b556e75..37a0c85 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -6967,8 +6967,7 @@ gfc_generate_function_code (gfc_namespace * ns)
gfc_init_block (&cleanup);
/* Reset recursion-check variable. */
- if ((gfc_option.rtcheck & GFC_RTCHECK_RECURSION)
- && !is_recursive && !flag_openmp && recurcheckvar != NULL_TREE)
+ if (recurcheckvar != NULL_TREE)
{
gfc_add_modify (&cleanup, recurcheckvar, logical_false_node);
recurcheckvar = NULL;