[Bug fortran/78392] ICE in gfc_trans_auto_array_allocation, at fortran/trans-array.c:5979
janus at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Nov 18 11:38:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78392
--- Comment #3 from janus at gcc dot gnu.org ---
(In reply to janus from comment #2)
> As an alternative to removing the assert, one could possibly prevent SAVEd
> variables in the main PROGRAM from being declared as "static" (which might
> also cure the performance regressions that Dominique reported for my patch
> for PR 55207)?
This could possibly be accomplished like this:
Index: gcc/fortran/trans-decl.c
===================================================================
--- gcc/fortran/trans-decl.c (Revision 242584)
+++ gcc/fortran/trans-decl.c (Arbeitskopie)
@@ -635,7 +635,8 @@ gfc_finish_var_decl (tree decl, gfc_symbol * sym)
initialized variables are SAVE_IMPLICIT and explicitly saved are
SAVE_EXPLICIT. */
if (!sym->attr.use_assoc
- && (sym->attr.save != SAVE_NONE || sym->attr.data
+ && ((sym->attr.save != SAVE_NONE &&
!sym->ns->proc_name->attr.is_main_program)
+ || sym->attr.data
|| (sym->value && sym->ns->proc_name->attr.is_main_program)
|| (flag_coarray == GFC_FCOARRAY_LIB
&& sym->attr.codimension && !sym->attr.allocatable)))
That indeed removes the ICE on comment 0, however it causes loads of testsuite
regressions, so it's certainly not a very good idea.
More information about the Gcc-bugs
mailing list