OSDN Git Service

* optimize.c (maybe_clone_body): Set linkage flags before
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jun 2011 16:52:56 +0000 (16:52 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 23 Jun 2011 16:52:56 +0000 (16:52 +0000)
cgraph_same_body_alias.

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

gcc/cp/ChangeLog
gcc/cp/optimize.c

index da39680..cb230e2 100644 (file)
@@ -1,5 +1,8 @@
 2011-06-23  Jason Merrill  <jason@redhat.com>
 
+       * optimize.c (maybe_clone_body): Set linkage flags before
+       cgraph_same_body_alias.
+
        PR c++/49440
        * class.c (set_linkage_according_to_type): Just check TREE_PUBLIC
        on the type's name.
index 87302dc..b9e3551 100644 (file)
@@ -310,8 +310,11 @@ maybe_clone_body (tree fn)
              || (HAVE_COMDAT_GROUP
                  && DECL_WEAK (fns[0])))
          && (flag_syntax_only
-             || cgraph_same_body_alias (cgraph_get_node (fns[0]), clone,
-                                        fns[0])))
+             /* Set linkage flags appropriately before
+                cgraph_create_function_alias looks at them.  */
+             || (expand_or_defer_fn_1 (clone)
+                 && cgraph_same_body_alias (cgraph_get_node (fns[0]),
+                                            clone, fns[0]))))
        {
          alias = true;
          if (DECL_ONE_ONLY (fns[0]))