From 237d62592af737acb7711b78f44304fcd18b3e13 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Fri, 18 Feb 2011 16:24:40 +0000 Subject: [PATCH] re PR lto/47798 (LTO debuginfo for globals wrong) 2011-02-18 Richard Guenther PR lto/47798 * lto-streamer.h (lto_global_var_decls): Declare. * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register statics for global var processing. lto/ * lto-tree.h (lto_global_var_decls): Do not declare here. * lto-lang.c: Include lto-streamer.h. * Make-lang.in (lto-lang.o): Adjust dependencies. From-SVN: r170274 --- gcc/ChangeLog | 7 +++++++ gcc/lto-streamer-in.c | 2 ++ gcc/lto-streamer.h | 1 + gcc/lto/ChangeLog | 7 +++++++ gcc/lto/Make-lang.in | 2 +- gcc/lto/lto-lang.c | 1 + gcc/lto/lto-tree.h | 3 --- 7 files changed, 19 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 724e6edcceb..3e31b747d3e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-02-18 Richard Guenther + + PR lto/47798 + * lto-streamer.h (lto_global_var_decls): Declare. + * lto-streamer-in.c (lto_register_var_decl_in_symtab): Register + statics for global var processing. + 2011-02-18 Richard Guenther PR tree-optimization/47737 diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c index ba48cbb3f60..1f0cf29d35a 100644 --- a/gcc/lto-streamer-in.c +++ b/gcc/lto-streamer-in.c @@ -2432,6 +2432,8 @@ lto_register_var_decl_in_symtab (struct data_in *data_in, tree decl) ASM_FORMAT_PRIVATE_NAME (label, name, DECL_UID (decl)); SET_DECL_ASSEMBLER_NAME (decl, get_identifier (label)); rest_of_decl_compilation (decl, 1, 0); + + VEC_safe_push (tree, gc, lto_global_var_decls, decl); } /* If this variable has already been declared, queue the diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h index b82c54ede1c..d8669a21529 100644 --- a/gcc/lto-streamer.h +++ b/gcc/lto-streamer.h @@ -914,6 +914,7 @@ extern void lto_symtab_merge_cgraph_nodes (void); extern tree lto_symtab_prevailing_decl (tree decl); extern enum ld_plugin_symbol_resolution lto_symtab_get_resolution (tree decl); extern void lto_symtab_free (void); +extern GTY(()) VEC(tree,gc) *lto_global_var_decls; /* In lto-opts.c. */ diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 3872a3584b5..e4267967a37 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,10 @@ +2011-02-18 Richard Guenther + + PR lto/47798 + * lto-tree.h (lto_global_var_decls): Do not declare here. + * lto-lang.c: Include lto-streamer.h. + * Make-lang.in (lto-lang.o): Adjust dependencies. + 2011-02-10 Kai Tietz PR lto/47241 diff --git a/gcc/lto/Make-lang.in b/gcc/lto/Make-lang.in index 16b0f35e2ad..22e13912e32 100644 --- a/gcc/lto/Make-lang.in +++ b/gcc/lto/Make-lang.in @@ -79,7 +79,7 @@ $(LTO_EXE): $(LTO_OBJS) $(BACKEND) $(LIBDEPS) lto/lto-lang.o: lto/lto-lang.c $(CONFIG_H) coretypes.h debug.h \ flags.h $(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(SYSTEM_H) \ $(TARGET_H) $(LTO_H) $(GIMPLE_H) gtype-lto.h gt-lto-lto-lang.h \ - $(EXPR_H) + $(EXPR_H) lto-streamer.h lto/lto.o: lto/lto.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(OPTS_H) \ toplev.h $(TREE_H) $(DIAGNOSTIC_CORE_H) $(TM_H) \ $(CGRAPH_H) $(GGC_H) tree-ssa-operands.h $(TREE_PASS_H) \ diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c index 968073ba4ef..5f157d6de06 100644 --- a/gcc/lto/lto-lang.c +++ b/gcc/lto/lto-lang.c @@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see #include "gimple.h" #include "diagnostic-core.h" #include "toplev.h" +#include "lto-streamer.h" static tree handle_noreturn_attribute (tree *, tree, tree, int, bool *); static tree handle_leaf_attribute (tree *, tree, tree, int, bool *); diff --git a/gcc/lto/lto-tree.h b/gcc/lto/lto-tree.h index bc77750352d..d187fe20dd3 100644 --- a/gcc/lto/lto-tree.h +++ b/gcc/lto/lto-tree.h @@ -55,7 +55,4 @@ union GTY((desc ("lto_tree_node_structure (&%h)"), desc ("tree_node_structure (&%h)"))) generic; }; -/* Vector to keep track of external variables we've seen so far. */ -extern GTY(()) VEC(tree,gc) *lto_global_var_decls; - #endif /* GCC_LTO_TREE_H */ -- 2.30.2