aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/lto/ChangeLog8
-rw-r--r--gcc/lto/lto-lang.c12
2 files changed, 11 insertions, 9 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 94d19ee..1b55d3e 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,11 @@
+2014-02-12 Richard Biener <rguenther@suse.de>
+
+ PR lto/60060
+ * lto-lang.c (lto_write_globals): Do not call
+ wrapup_global_declarations or emit_debug_global_declarations
+ but emit debug info for non-function scope variables
+ directly.
+
2014-02-06 Jan Hubicka <hubicka@ucw.cz>
* lto.c (unify_scc): Free CONSTRUCTOR_ELTS.
diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c
index 4d6d0f5..28eac6f 100644
--- a/gcc/lto/lto-lang.c
+++ b/gcc/lto/lto-lang.c
@@ -1082,17 +1082,11 @@ lto_write_globals (void)
if (flag_wpa)
return;
- /* Record the global variables. */
- vec<tree> lto_global_var_decls = vNULL;
+ /* Output debug info for global variables. */
varpool_node *vnode;
FOR_EACH_DEFINED_VARIABLE (vnode)
- lto_global_var_decls.safe_push (vnode->decl);
-
- tree *vec = lto_global_var_decls.address ();
- int len = lto_global_var_decls.length ();
- wrapup_global_declarations (vec, len);
- emit_debug_global_declarations (vec, len);
- lto_global_var_decls.release ();
+ if (!decl_function_context (vnode->decl))
+ debug_hooks->global_decl (vnode->decl);
}
static tree