From a13f439f47a1b35ed273bfb34a96e01bb6c9c875 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Thu, 22 Sep 2016 14:52:09 +0200 Subject: re PR ipa/77653 (wrong code at -Os and above on x86_64-linux-gnu (in both 32-bit and 64-bit modes)) Fix PR ipa/77653 PR ipa/77653 * gcc.dg/ipa/pr77653.c: New test. PR ipa/77653 * ipa-icf.c (sem_variable::merge): Yield merge operation if alias address matters, not necessarily address of original. From-SVN: r240354 --- gcc/ipa-icf.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'gcc/ipa-icf.c') diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c index 798d833971e..0869756fe3e 100644 --- a/gcc/ipa-icf.c +++ b/gcc/ipa-icf.c @@ -2179,7 +2179,6 @@ sem_variable::merge (sem_item *alias_item) varpool_node *alias = alias_var->get_node (); bool original_discardable = false; - bool original_address_matters = original->address_matters_p (); bool alias_address_matters = alias->address_matters_p (); /* See if original is in a section that can be discarded if the main @@ -2222,13 +2221,11 @@ sem_variable::merge (sem_item *alias_item) } /* We can not merge if address comparsion metters. */ - if (original_address_matters && alias_address_matters - && flag_merge_constants < 2) + if (alias_address_matters && flag_merge_constants < 2) { if (dump_file) fprintf (dump_file, - "Not unifying; " - "adress of original and alias may be compared.\n\n"); + "Not unifying; adress of original may be compared.\n\n"); return false; } -- cgit v1.2.3