diff options
author | Harald Anlauf <anlauf@gmx.de> | 2021-09-17 21:45:33 +0200 |
---|---|---|
committer | Harald Anlauf <anlauf@gmx.de> | 2021-09-17 21:46:32 +0200 |
commit | 51166eb2c534692c3c7779def24f83c8c3811b98 (patch) | |
tree | 2b0f52729af3c7cc57e6dc6908263964c1cedca4 /gcc/fortran/trans-decl.c | |
parent | 42eff613d0c10f88dc7a44b14981876401a09981 (diff) | |
download | gcc-51166eb2c534692c3c7779def24f83c8c3811b98.zip gcc-51166eb2c534692c3c7779def24f83c8c3811b98.tar.gz gcc-51166eb2c534692c3c7779def24f83c8c3811b98.tar.bz2 |
Fortran - (large) arrays in the main shall be static
gcc/fortran/ChangeLog:
PR fortran/102366
* trans-decl.c (gfc_finish_var_decl): Disable the warning message
for variables moved from stack to static storange if they are
declared in the main, but allow the move to happen.
gcc/testsuite/ChangeLog:
PR fortran/102366
* gfortran.dg/pr102366.f90: New test.
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r-- | gcc/fortran/trans-decl.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index bed61e2..3bd8a0f 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -743,7 +743,6 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym) /* Keep variables larger than max-stack-var-size off stack. */ if (!(sym->ns->proc_name && sym->ns->proc_name->attr.recursive) - && !(sym->ns->proc_name && sym->ns->proc_name->attr.is_main_program) && !sym->attr.automatic && sym->attr.save != SAVE_EXPLICIT && sym->attr.save != SAVE_IMPLICIT @@ -757,7 +756,9 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym) || sym->attr.allocatable) && !DECL_ARTIFICIAL (decl)) { - if (flag_max_stack_var_size > 0) + if (flag_max_stack_var_size > 0 + && !(sym->ns->proc_name + && sym->ns->proc_name->attr.is_main_program)) gfc_warning (OPT_Wsurprising, "Array %qs at %L is larger than limit set by " "%<-fmax-stack-var-size=%>, moved from stack to static " |