aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-05-30 14:27:18 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-05-30 12:27:18 +0000
commit0b9c3a04049b790ea3aa6afcfef611088496be9d (patch)
tree54525b369a3f43f52419d119f1ac56900fff36f6 /gcc
parentd56026c21e98183dd543b799ba3a1e1adea9a22c (diff)
downloadgcc-0b9c3a04049b790ea3aa6afcfef611088496be9d.zip
gcc-0b9c3a04049b790ea3aa6afcfef611088496be9d.tar.gz
gcc-0b9c3a04049b790ea3aa6afcfef611088496be9d.tar.bz2
dwarf2out.c (reference_to_unused, [...]): Avoid creating of new varool nodes.
* dwarf2out.c (reference_to_unused, premark_types_used_by_global_vars_helper): Avoid creating of new varool nodes. From-SVN: r160052
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/dwarf2out.c8
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b31797b..12fe9f9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,11 @@
2010-05-30 Jan Hubicka <jh@suse.cz>
+ * dwarf2out.c (reference_to_unused,
+ premark_types_used_by_global_vars_helper): Avoid creating of new
+ varool nodes.
+
+2010-05-30 Jan Hubicka <jh@suse.cz>
+
* cgraph.h (cgraph_node_cannot_return,
cgraph_edge_cannot_lead_to_return): New functions.
* cgraph.c (cgraph_node_cannot_return,
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index eec92d3..48f5fa4 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -15938,8 +15938,8 @@ reference_to_unused (tree * tp, int * walk_subtrees,
return *tp;
else if (TREE_CODE (*tp) == VAR_DECL)
{
- struct varpool_node *node = varpool_node (*tp);
- if (!node->needed)
+ struct varpool_node *node = varpool_get_node (*tp);
+ if (!node || !node->needed)
return *tp;
}
else if (TREE_CODE (*tp) == FUNCTION_DECL
@@ -18213,8 +18213,8 @@ premark_types_used_by_global_vars_helper (void **slot,
{
/* Ask cgraph if the global variable really is to be emitted.
If yes, then we'll keep the DIE of ENTRY->TYPE. */
- struct varpool_node *node = varpool_node (entry->var_decl);
- if (node->needed)
+ struct varpool_node *node = varpool_get_node (entry->var_decl);
+ if (node && node->needed)
{
die->die_perennial_p = 1;
/* Keep the parent DIEs as well. */