Hi,
this patch solves the bultin/strlen-3.c LTO linker plugin problem.
While removing alias code I was bit overactive and removed the check that makes
us to implicitly
do -fwhole-program when resolution info is around.
It is not quite clear to me why in LTO we need -fwhole-program to get the
testcase right.
Bootstrap/regtest in progress, will commit it once it passes.
* ipa.c (cgraph_exernally_visible_p): Return accidentally removed check
for LDPR_PREVAILING_DEF_IRONLY.
Index: ipa.c
===================================================================
--- ipa.c (revision 174955)
+++ ipa.c (working copy)
@@ -614,6 +614,8 @@
/* If linker counts on us, we must preserve the function. */
if (cgraph_used_from_object_file_p (node))
return true;
+ if (node->resolution == LDPR_PREVAILING_DEF_IRONLY)
+ return false;
if (DECL_PRESERVE_P (node->decl))
return true;
if (lookup_attribute ("externally_visible", DECL_ATTRIBUTES (node->decl)))