This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/70937] [7 Regression] ICE: tree code âssa_nameâ is not supported in LTO streams
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 04 May 2016 09:01:18 +0000
- Subject: [Bug fortran/70937] [7 Regression] ICE: tree code âssa_nameâ is not supported in LTO streams
- Auto-submitted: auto-generated
- References: <bug-70937-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70937
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |rguenth at gcc dot gnu.org
Component|middle-end |fortran
Target Milestone|--- |7.0
Summary|[7.0 Regression] ICE: tree |[7 Regression] ICE: tree
|code âssa_nameâ is not |code âssa_nameâ is not
|supported in LTO streams |supported in LTO streams
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
This is fallout of gimplify-into-SSA and another case where SAVE_EXPRs inside
type sizes are corrupted. I fixed one testsuite occurance with
2016-05-02 Richard Biener <rguenther@suse.de>
* trans-array.c (gfc_trans_create_temp_array): Properly
create a DECL_EXPR for the anonymous VLA array type.
but suspected more places need fixing. The affected type is constructed via
#0 0x00000000009291a3 in gfc_get_character_type_len_for_eltype (
eltype=<integer_type 0x7ffff688b540 character(kind=1)>,
len=<parm_decl 0x7ffff6a37280 _args>)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-types.c:1026
#1 0x0000000000929214 in gfc_get_character_type_len (kind=1,
len=<parm_decl 0x7ffff6a37280 _args>)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-types.c:1036
#2 0x00000000009292d8 in gfc_get_character_type (kind=1, cl=0x26c9420)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-types.c:1051
#3 0x00000000009293d5 in gfc_typenode_for_spec (spec=0x26c8040)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-types.c:1095
#4 0x00000000008a78b6 in gfc_build_dummy_array_decl (sym=0x26c8020,
dummy=<parm_decl 0x7ffff6a37300 args>)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-decl.c:1106
#5 0x00000000008a8dad in gfc_get_symbol_decl (sym=0x26c8020)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-decl.c:1471
#6 0x00000000008b6e4d in generate_local_decl (sym=0x26c8020)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-decl.c:5220
#7 0x000000000085fd94 in do_traverse_symtree (st=0x26c77b0, st_func=0x0,
sym_func=0x8b6d89 <generate_local_decl(gfc_symbol*)>)
at /space/rguenther/src/svn/trunk/gcc/fortran/symbol.c:3817
and it needs to be handled similarly. Possibly somewhere here:
#4 0x00000000008a78b6 in gfc_build_dummy_array_decl (sym=0x26c8020,
dummy=<parm_decl 0x7ffff6a37300 args>)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-decl.c:1106
1106 : gfc_typenode_for_spec (&sym->ts);
(gdb) l
1101 }
1102
1103 /* For classarrays the element type is required, but
1104 gfc_typenode_for_spec () returns the array descriptor. */
1105 type = is_classarray ? gfc_get_element_type (type)
1106 : gfc_typenode_for_spec (&sym->ts);
1107 type = gfc_get_nodesc_array_type (type, as, packed,
1108 !sym->attr.target);
or here:
#5 0x00000000008a8dad in gfc_get_symbol_decl (sym=0x26c8020)
at /space/rguenther/src/svn/trunk/gcc/fortran/trans-decl.c:1471
1471 decl = gfc_build_dummy_array_decl (sym, sym->backend_decl);
(gdb) l
1466
1467 /* Use a copy of the descriptor for dummy arrays. */
1468 if ((sym->attr.dimension || sym->attr.codimension)
1469 && !TREE_USED (sym->backend_decl))
1470 {
1471 decl = gfc_build_dummy_array_decl (sym, sym->backend_decl);
1472 /* Prevent the dummy from being detected as unused if it is
copied. */
1473 if (sym->backend_decl != NULL && decl != sym->backend_decl)
1474 DECL_ARTIFICIAL (sym->backend_decl) = 1;
1475 sym->backend_decl = decl;