From 6c07af386d6d255631b0d7c8100fc5a481c8de39 Mon Sep 17 00:00:00 2001
From: pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Sat, 19 Jun 2004 16:16:59 +0000
Subject: [PATCH] 2004-06-19  Andrew Pinski  <apinski@apple.com>

        PR c++/15721
        * toplev.c (wrapup_global_declarations): Do not check
        TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
        cgraph_varpool_node's needed field.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83386 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/ChangeLog | 7 +++++++
 gcc/toplev.c  | 7 ++++---
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2b7258649b74..4d2160b9eb75 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2004-06-19  Andrew Pinski  <apinski@apple.com>
+
+	PR c++/15721
+	* toplev.c (wrapup_global_declarations): Do not check
+	TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check
+	cgraph_varpool_node's needed field.
+
 2004-06-19  Jan Hubicka  <jh@suse.cz>
 	    Steven Bosscher  <stevenb@suse.de>
 
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 16b45d74cedd..b2990bcae771 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -762,16 +762,17 @@ wrapup_global_declarations (tree *vec, int len)
 
 	  if (TREE_CODE (decl) == VAR_DECL && TREE_STATIC (decl))
 	    {
+	      struct cgraph_varpool_node *node;
 	      bool needed = 1;
+	      node = cgraph_varpool_node (decl);
 
-	      if (flag_unit_at_a_time
-		  && cgraph_varpool_node (decl)->finalized)
+	      if (flag_unit_at_a_time && node->finalized)
 		needed = 0;
 	      else if ((flag_unit_at_a_time && !cgraph_global_info_ready)
 		       && (TREE_USED (decl)
 			   || TREE_USED (DECL_ASSEMBLER_NAME (decl))))
 		/* needed */;
-	      else if (TREE_SYMBOL_REFERENCED (DECL_ASSEMBLER_NAME (decl)))
+	      else if (node->needed)
 		/* needed */;
 	      else if (DECL_COMDAT (decl))
 		needed = 0;
-- 
GitLab