diff options
Diffstat (limited to 'gcc-4.9/gcc/l-ipo.c')
-rw-r--r-- | gcc-4.9/gcc/l-ipo.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc-4.9/gcc/l-ipo.c b/gcc-4.9/gcc/l-ipo.c index 843ad557d..59a9636d2 100644 --- a/gcc-4.9/gcc/l-ipo.c +++ b/gcc-4.9/gcc/l-ipo.c @@ -1566,7 +1566,11 @@ resolve_cgraph_node (struct cgraph_sym **slot, struct cgraph_node *node) } has_prof1 = has_profile_info (decl1); - if (has_prof1) + bool is_aux1 = cgraph_is_auxiliary (decl1); + bool is_aux2 = cgraph_is_auxiliary (decl2); + /* Pick the copy from the primary module if multiple copies + have profile. */ + if (has_prof1 && (!is_aux1 || is_aux2)) return; has_prof2 = has_profile_info (decl2); if (has_prof2) |