passes.c (rest_of_decl_compilation): Do not add local vars into varpol.
* passes.c (rest_of_decl_compilation): Do not add local vars into varpol. * varpool.c (varpool_get_node, varpool_node): Sanity check that only static or extern vars are in varpool. (varpool_finalize_decl): Sanity check that only static vars are finalized. From-SVN: r163804
This commit is contained in:
parent
2f757e4a8b
commit
a482b1f5f4
@ -1,3 +1,10 @@
|
||||
2010-09-03 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* passes.c (rest_of_decl_compilation): Do not add local vars into varpol.
|
||||
* varpool.c (varpool_get_node, varpool_node): Sanity check that only
|
||||
static or extern vars are in varpool.
|
||||
(varpool_finalize_decl): Sanity check that only static vars are finalized.
|
||||
|
||||
2010-09-03 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/45500
|
||||
|
@ -219,7 +219,8 @@ rest_of_decl_compilation (tree decl,
|
||||
/* Let cgraph know about the existence of variables. */
|
||||
if (in_lto_p && !at_end)
|
||||
;
|
||||
else if (TREE_CODE (decl) == VAR_DECL && !DECL_EXTERNAL (decl))
|
||||
else if (TREE_CODE (decl) == VAR_DECL && !DECL_EXTERNAL (decl)
|
||||
&& TREE_STATIC (decl))
|
||||
varpool_node (decl);
|
||||
}
|
||||
|
||||
|
@ -111,7 +111,8 @@ varpool_get_node (tree decl)
|
||||
{
|
||||
struct varpool_node key, **slot;
|
||||
|
||||
gcc_assert (DECL_P (decl) && TREE_CODE (decl) != FUNCTION_DECL);
|
||||
gcc_assert (TREE_CODE (decl) == VAR_DECL
|
||||
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)));
|
||||
|
||||
if (!varpool_hash)
|
||||
return NULL;
|
||||
@ -129,7 +130,8 @@ varpool_node (tree decl)
|
||||
{
|
||||
struct varpool_node key, *node, **slot;
|
||||
|
||||
gcc_assert (DECL_P (decl) && TREE_CODE (decl) != FUNCTION_DECL);
|
||||
gcc_assert (TREE_CODE (decl) == VAR_DECL
|
||||
&& (TREE_STATIC (decl) || DECL_EXTERNAL (decl)));
|
||||
|
||||
if (!varpool_hash)
|
||||
varpool_hash = htab_create_ggc (10, hash_varpool_node,
|
||||
@ -365,6 +367,8 @@ varpool_finalize_decl (tree decl)
|
||||
{
|
||||
struct varpool_node *node = varpool_node (decl);
|
||||
|
||||
gcc_assert (TREE_STATIC (decl));
|
||||
|
||||
/* The first declaration of a variable that comes through this function
|
||||
decides whether it is global (in C, has external linkage)
|
||||
or local (in C, has internal linkage). So do nothing more
|
||||
|
Loading…
Reference in New Issue
Block a user