diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-09 16:21:36 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-06-09 16:21:36 +0000 |
commit | 127d7f214d31616c6a5d979c814d8c3b5e1c1f4b (patch) | |
tree | 2fd919060d8ecfb55a3a393c028c7ba1f01c5856 /gcc/tree-inline.c | |
parent | d6832bede20479218dcf4d7bfe716a9bf5b8b14d (diff) | |
download | gcc-127d7f214d31616c6a5d979c814d8c3b5e1c1f4b.tar.gz |
* cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
local statics when doing unit-at-a-time.
(cgraph_varpool_assemble_pending_decls): Output debug info.
* dwarf2out.c (decls_for_scope): Skip local statics.
(dwarf2out_decl): Handle local statics.
* passes.c (rest_of_decl_compilation): Do not differentiate
local and global statics in unit-at-a-time.
* tree-inline.c (remap_decls): Put local static into
unexpanded_vars_list rather than introducing duplicated VAR_DECL
node.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@100802 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 6d2ef06eb27..db4b1e91306 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -385,6 +385,17 @@ remap_decls (tree decls, inline_data *id) { tree new_var; + /* We can not chain the local static declarations into the unexpanded_var_list + as we can't duplicate them or break one decl rule. Go ahead and link + them into unexpanded_var_list. */ + if (!lang_hooks.tree_inlining.auto_var_in_fn_p (old_var, id->callee) + && !DECL_EXTERNAL (old_var)) + { + cfun->unexpanded_var_list = tree_cons (NULL_TREE, old_var, + cfun->unexpanded_var_list); + continue; + } + /* Remap the variable. */ new_var = remap_decl (old_var, id); |