[Bug fortran/70937] [7 Regression] ICE: tree code ‘ssa_name’ is not supported in LTO streams
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Wed May 4 16:20:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70937
--- Comment #7 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
The ICEs are gone with the patch
--- ../_clean/gcc/fortran/trans-decl.c 2016-03-28 13:03:29.000000000 +0200
+++ ../p_work/gcc/fortran/trans-decl.c 2016-05-04 16:13:21.000000000 +0200
@@ -6013,6 +6013,29 @@ finish_oacc_declare (gfc_namespace *ns,
}
+static stmtblock_t *place_decl_expr_init;
+static void
+place_decl_expr (gfc_symbol *sym)
+{
+ if (sym->backend_decl)
+ {
+ tree type = sym->backend_decl;
+ if (DECL_P (sym->backend_decl))
+ type = TREE_TYPE (type);
+ else
+ gcc_assert (TYPE_P (type));
+ while (POINTER_TYPE_P (type))
+ type = TREE_TYPE (type);
+ if (variably_modified_type_p (type, NULL))
+ {
+ if (TYPE_NAME (type))
+ gfc_add_expr_to_block (place_decl_expr_init,
+ build1 (DECL_EXPR, type, TYPE_NAME
(type)));
+ }
+ }
+}
+
+
/* Generate code for a function. */
void
@@ -6088,6 +6111,9 @@ gfc_generate_function_code (gfc_namespac
has_coarray_vars = false;
generate_local_vars (ns);
+ place_decl_expr_init = &init;
+ gfc_traverse_ns (ns, place_decl_expr);
+
if (flag_coarray == GFC_FCOARRAY_LIB && has_coarray_vars)
generate_coarray_init (ns);
However, I see several execution failures:
FAIL: gfortran.dg/array_constructor_type_7.f03 -Oxx execution test where xx
depends on -m32/-m64
FAIL: gfortran.dg/auto_char_dummy_array_1.f90 -O* execution test
FAIL: gfortran.dg/namelist_70.f90 -O* execution test
FAIL: gfortran.dg/string_ctor_1.f90 -Oxx execution test where xx depends on
-m32/-m64
FAIL: libgomp.fortran/task2.f90 -O execution test
FAIL: libgomp.fortran/vla*.f90 -O* execution test
More information about the Gcc-bugs
mailing list