re PR c++/15721 (template instantation omits static data members)
authorAndrew Pinski <apinski@apple.com>
Sat, 19 Jun 2004 16:16:59 +0000 (16:16 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Sat, 19 Jun 2004 16:16:59 +0000 (09:16 -0700)
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.

From-SVN: r83386

gcc/ChangeLog
gcc/toplev.c

index 2b7258649b74899bfeb301e828bcd61157db6a98..4d2160b9eb758823f2bd4c5754cf577b10aae9d8 100644 (file)
@@ -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>
 
index 16b45d74cedd8920d67b10849575e8a4edcd90e5..b2990bcae771e10b1c5174c0f8a132b84de2ec3d 100644 (file)
@@ -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;