Commit a482b1f5 by Jan Hubicka Committed by Jan Hubicka

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
parent 2f757e4a
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment