summaryrefslogtreecommitdiff
path: root/gcc/ipa-icf.c
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2016-09-22 14:52:09 +0200
committerMartin Liska <marxin@gcc.gnu.org>2016-09-22 12:52:09 +0000
commita13f439f47a1b35ed273bfb34a96e01bb6c9c875 (patch)
tree9891dbd477cab298a615b1c6330961e48b27f24e /gcc/ipa-icf.c
parent9ef2eff0d40fb59ee7538148fc8eb25088777297 (diff)
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
Diffstat (limited to 'gcc/ipa-icf.c')
-rw-r--r--gcc/ipa-icf.c7
1 files changed, 2 insertions, 5 deletions
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;
}