re PR fortran/55733 (-fno-automatic: Fails for scalar allocatables)

2012-12-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/55733
        * trans-decl.c (gfc_create_string_length): Avoid setting
        TREE_STATIC for automatic variables with -fno-automatic.

From-SVN: r194621
This commit is contained in:
Tobias Burnus 2012-12-20 00:05:49 +01:00 committed by Tobias Burnus
parent 502bfcbc80
commit 26c08c0323
2 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2012-12-19 Tobias Burnus <burnus@net-b.de>
PR fortran/55733
* trans-decl.c (gfc_create_string_length): Avoid setting
TREE_STATIC for automatic variables with -fno-automatic.
2012-12-19 Tobias Burnus <burnus@net-b.de>
Jakub Jelinek <jakub@redhat.com>
Janus Weil <janus@gcc.gnu.org>

View File

@ -1089,9 +1089,15 @@ gfc_create_string_length (gfc_symbol * sym)
tree length;
const char *name;
/* The string length variable shall be in static memory if it is either
explicitly SAVED, a module variable or with -fno-automatic. Only
relevant is "len=:" - otherwise, it is either a constant length or
it is an automatic variable. */
bool static_length = sym->attr.save
|| sym->ns->proc_name->attr.flavor == FL_MODULE
|| gfc_option.flag_max_stack_var_size == 0;
|| (gfc_option.flag_max_stack_var_size == 0
&& sym->ts.deferred && !sym->attr.dummy
&& !sym->attr.result && !sym->attr.function);
/* Also prefix the mangled name. We need to call GFC_PREFIX for static
variables as some systems do not support the "." in the assembler name.