This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug lto/59723] [4.9 Regression] ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto


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 ...

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]