This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/63892] [5 Regression] gcc.dg/sibcall-3.c fails on darwin with -m32
- From: "iains at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 22 Feb 2015 13:01:53 +0000
- Subject: [Bug target/63892] [5 Regression] gcc.dg/sibcall-3.c fails on darwin with -m32
- Auto-submitted: auto-generated
- References: <bug-63892-4 at http dot gcc dot gnu dot org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63892
--- Comment #18 from Iain Sandoe <iains at gcc dot gnu.org> ---
so - next increment - simplification of the previous.
(don't try to redirect callers if we don't have any)
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index e1af8bf..ca19967 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -660,7 +660,8 @@ sem_function::merge (sem_item *alias_item)
/* When both alias and original are not overwritable, we can save
the extra thunk wrapper for direct calls. */
redirect_callers
- = (!original_discardable
+ = (alias->callers
+ && !original_discardable
&& !DECL_COMDAT_GROUP (alias->decl)
&& alias->get_availability () > AVAIL_INTERPOSABLE
&& original->get_availability () > AVAIL_INTERPOSABLE
Unfortunately, we're still not there.
I think that we can have a situation where we remove an alias which happens to
be the version that the vtable is pointing to (and so end up with an
unsatisfied reference from the vtable and link time).
However, I still haven't figured out how to redirect those referencesâ