Commit 26c08c03 by Tobias Burnus Committed by Tobias Burnus

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
parent 502bfcbc
2012-12-19 Tobias Burnus <burnus@net-b.de> 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> Jakub Jelinek <jakub@redhat.com>
Janus Weil <janus@gcc.gnu.org> Janus Weil <janus@gcc.gnu.org>
......
...@@ -1089,9 +1089,15 @@ gfc_create_string_length (gfc_symbol * sym) ...@@ -1089,9 +1089,15 @@ gfc_create_string_length (gfc_symbol * sym)
tree length; tree length;
const char *name; 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 bool static_length = sym->attr.save
|| sym->ns->proc_name->attr.flavor == FL_MODULE || 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 /* 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. variables as some systems do not support the "." in the assembler name.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment