aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-02-04 14:53:24 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-02-04 14:53:24 +0000
commitc39276b8d6b5046e860625202dbc94b8be5ce093 (patch)
tree24390526b3202113732fbbc802698a5f6e95ed74 /gcc/lto-streamer-in.c
parent3e247e586cb2b7cdc3519b3dddd1c50749a810ce (diff)
downloadgcc-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.c23
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 ();
}