aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/optimize.c
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2011-06-23 12:52:56 -0400
committerJason Merrill <jason@gcc.gnu.org>2011-06-23 12:52:56 -0400
commitd72ce0c110efa0597e1620f8dd946a14191b9b83 (patch)
treededee443711edcd75ec35bb28fe262243bb77a70 /gcc/cp/optimize.c
parent012d5d2526e73eb98190fdabfd86e075ed5c7d50 (diff)
downloadgcc-d72ce0c110efa0597e1620f8dd946a14191b9b83.zip
gcc-d72ce0c110efa0597e1620f8dd946a14191b9b83.tar.gz
gcc-d72ce0c110efa0597e1620f8dd946a14191b9b83.tar.bz2
optimize.c (maybe_clone_body): Set linkage flags before cgraph_same_body_alias.
* optimize.c (maybe_clone_body): Set linkage flags before cgraph_same_body_alias. From-SVN: r175341
Diffstat (limited to 'gcc/cp/optimize.c')
-rw-r--r--gcc/cp/optimize.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index 87302dc..b9e3551 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -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]))