diff options
author | Jan Hubicka <jh@suse.cz> | 2013-06-12 11:12:47 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-06-12 09:12:47 +0000 |
commit | bbf9ad070dd1acea0c60aa531a738c8fc8d410d5 (patch) | |
tree | f90b96685d9ff8fb7b5722fdf8b1ff094b9c8b96 /gcc/varpool.c | |
parent | a53f90adbffa2ec9fae2b28c7dd33d1b923b5431 (diff) | |
download | gcc-bbf9ad070dd1acea0c60aa531a738c8fc8d410d5.zip gcc-bbf9ad070dd1acea0c60aa531a738c8fc8d410d5.tar.gz gcc-bbf9ad070dd1acea0c60aa531a738c8fc8d410d5.tar.bz2 |
lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
* lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
* cgraph.h (varpool_create_empty_node): Declare.
* lto-cgraph.c (input_node, input_varpool_node): Forcingly create
duplicated nodes.
* symtab.c (symtab_unregister_node): Be lax about missin entries
in node hash.
(symtab_get_node): Update comment.
* varpool.c (varpool_create_empty_node): Break out from ...
(varpool_node_for_decl): ... here.
* lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
* lto.c (register_resolution): Take lto_file_data argument.
(lto_register_var_decl_in_symtab,
lto_register_function_decl_in_symtab): Update.
(read_cgraph_and_symbols): Update resolution_map handling.
From-SVN: r199990
Diffstat (limited to 'gcc/varpool.c')
-rw-r--r-- | gcc/varpool.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/varpool.c b/gcc/varpool.c index 4b23884..fd193d3 100644 --- a/gcc/varpool.c +++ b/gcc/varpool.c @@ -36,18 +36,26 @@ along with GCC; see the file COPYING3. If not see #include "tree-flow.h" #include "flags.h" +/* Allocate new callgraph node and insert it into basic data structures. */ + +struct varpool_node * +varpool_create_empty_node (void) +{ + struct varpool_node *node = ggc_alloc_cleared_varpool_node (); + node->symbol.type = SYMTAB_VARIABLE; + return node; +} + /* Return varpool node assigned to DECL. Create new one when needed. */ struct varpool_node * varpool_node_for_decl (tree decl) { struct varpool_node *node = varpool_get_node (decl); - gcc_assert (TREE_CODE (decl) == VAR_DECL - && (TREE_STATIC (decl) || DECL_EXTERNAL (decl) || in_lto_p)); + gcc_checking_assert (TREE_CODE (decl) == VAR_DECL); if (node) return node; - node = ggc_alloc_cleared_varpool_node (); - node->symbol.type = SYMTAB_VARIABLE; + node = varpool_create_empty_node (); node->symbol.decl = decl; symtab_register_node ((symtab_node)node); return node; |