This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug lto/59723] [4.9 Regression] ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto
- 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: Thu, 09 Jan 2014 10:00:02 +0000
- Subject: [Bug lto/59723] [4.9 Regression] ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto
- Auto-submitted: auto-generated
- References: <bug-59723-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59723
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|WAITING |NEW
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Dominique d'Humieres from comment #3)
> It could be due to r205679:
>
> Author: burnus
> Date: Wed Dec 4 19:59:42 2013 UTC (4 weeks, 6 days ago)
> Changed paths: 10
> Log Message:
> gcc/
> 2013-12-04 Tobias Burnus <burnus@net-b.de>
>
> PR debug/37132
> * lto-streamer.h (LTO_tags): Add LTO_namelist_decl_ref.
> * tree.def (NAMELIST_DECL): Add.
> * tree.h (NAMELIST_DECL_ASSOCIATED_DECL): New macro.
> * tree.c (initialize_tree_contains_struct): Add asserts for it.
> * dwarf2out.c (gen_namelist_decl): New function.
> (gen_decl_die, dwarf2out_decl): Call it.
> (dwarf2out_imported_module_or_decl_1): Handle NAMELIST_DECL.
> * lto-streamer-in.c (lto_input_tree_ref): Handle NAMELIST_DECL.
> (lto_input_tree_ref, lto_input_tree_1): Update lto_tag_check_range
> call.
> * lto-streamer-out.c (lto_output_tree_ref): Handle
> * NAMELIST_DECL.
>
> gcc/fortran
> 2013-12-04 Tobias Burnus <burnus@net-b.de>
>
> PR debug/37132
> * trans-decl.c (generate_namelist_decl, create_module_nml_decl):
> New static functions.
> (gfc_generate_module_vars, generate_local_vars): Call them.
> (gfc_trans_use_stmts): Handle namelists for debug genertion.
Very likely. This obviously wasn't tested at all and failed to update
the LTO machinery in all required places.
We ICE at
1390 /* Protect against recursion which means disconnect between
1391 what tree edges we walk in the DFS walk and what edges
1392 we stream out. */
1393 gcc_assert (!in_dfs_walk);
I don't remember reviewing this LTO change nor approving it. Well ...