OSDN Git Service

problem that current decl duplication mechanizm
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Oct 2003 23:10:20 +0000 (23:10 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 15 Oct 2003 23:10:20 +0000 (23:10 +0000)
>
>         /* If we didn't remap this variable, so we can't mess with its
>     TREE_CHAIN.  If we remapped this variable to the return slot, it's

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72539 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl2.c

index 86d4364..8173021 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-15  Jan Hubicka  <jh@suse.cz>
+
+       pr c++/12574
+        * decl2.c (cxx_callgraph_analyze_expr): deal with baselink.
+
 2003-10-14  Jason Merrill  <jason@redhat.com>
 
        PR c++/11878
index b51e365..85845fc 100644 (file)
@@ -2515,16 +2515,21 @@ cxx_callgraph_analyze_expr (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
 {
   tree t = *tp;
 
-  switch (TREE_CODE (t))
-    {
-    case PTRMEM_CST:
-      if (TYPE_PTRMEMFUNC_P (TREE_TYPE (t)))
-       cgraph_mark_needed_node (cgraph_node (PTRMEM_CST_MEMBER (t)));
-      break;
-
-    default:
-      break;
-    }
+  if (flag_unit_at_a_time)
+    switch (TREE_CODE (t))
+      {
+      case PTRMEM_CST:
+       if (TYPE_PTRMEMFUNC_P (TREE_TYPE (t)))
+         cgraph_mark_needed_node (cgraph_node (PTRMEM_CST_MEMBER (t)));
+       break;
+      case BASELINK:
+       if (TREE_CODE (BASELINK_FUNCTIONS (t)) == FUNCTION_DECL)
+         cgraph_mark_needed_node (cgraph_node (BASELINK_FUNCTIONS (t)));
+       break;
+
+      default:
+       break;
+      }
 
   return NULL;
 }