diff options
author | Richard Biener <rguenther@suse.de> | 2014-02-04 14:53:24 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-02-04 14:53:24 +0000 |
commit | c39276b8d6b5046e860625202dbc94b8be5ce093 (patch) | |
tree | 24390526b3202113732fbbc802698a5f6e95ed74 /gcc/lto-streamer-in.c | |
parent | 3e247e586cb2b7cdc3519b3dddd1c50749a810ce (diff) | |
download | gcc-c39276b8d6b5046e860625202dbc94b8be5ce093.zip gcc-c39276b8d6b5046e860625202dbc94b8be5ce093.tar.gz gcc-c39276b8d6b5046e860625202dbc94b8be5ce093.tar.bz2 |
re PR lto/59723 (ICE: in lto_output_tree, at lto-streamer-out.c:1390 when compiling some Fortran tests with -flto)
2014-02-04 Richard Biener <rguenther@suse.de>
PR lto/59723
* lto-streamer-out.c (tree_is_indexable): Force NAMELIST_DECLs
in function context local.
(lto_output_tree_ref): Do not write trees from lto_output_tree_ref.
* lto-streamer-in.c (lto_input_tree_ref): Handle LTO_namelist_decl_ref
similar to LTO_imported_decl_ref.
lto/
* lto.c (mentions_vars_p): Handle NAMELIST_DECL.
(lto_fixup_prevailing_decls): Handle fixing up CONSTRUCTOR values.
From-SVN: r207471
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r-- | gcc/lto-streamer-in.c | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index df32a6b..68d3cda 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -244,32 +244,11 @@ lto_input_tree_ref (struct lto_input_block *ib, struct data_in *data_in, case LTO_imported_decl_ref: case LTO_label_decl_ref: case LTO_translation_unit_decl_ref: + case LTO_namelist_decl_ref: ix_u = streamer_read_uhwi (ib); result = lto_file_decl_data_get_var_decl (data_in->file_data, ix_u); break; - case LTO_namelist_decl_ref: - { - tree tmp; - vec<constructor_elt, va_gc> *nml_decls = NULL; - unsigned i, n; - - result = make_node (NAMELIST_DECL); - TREE_TYPE (result) = void_type_node; - DECL_NAME (result) = stream_read_tree (ib, data_in); - n = streamer_read_uhwi (ib); - for (i = 0; i < n; i++) - { - ix_u = streamer_read_uhwi (ib); - tmp = lto_file_decl_data_get_var_decl (data_in->file_data, ix_u); - gcc_assert (tmp != NULL_TREE); - CONSTRUCTOR_APPEND_ELT (nml_decls, NULL_TREE, tmp); - } - NAMELIST_DECL_ASSOCIATED_DECL (result) = build_constructor (NULL_TREE, - nml_decls); - break; - } - default: gcc_unreachable (); } |