From 106b54666459294e68b176e2f2e811e488158880 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 9 Feb 2015 21:45:04 +0100 Subject: [PATCH] re PR ipa/63566 (i686 bootstrap fails: ICE RTL flag check: INSN_UID used with unexpected rtx code 'set' in INSN_UID, at rtl.h:1326) PR ipa/63566 * ipa-icf.c (set_local): New function. (sem_function::merge): Use it. From-SVN: r220548 --- gcc/ChangeLog | 6 ++++++ gcc/ipa-icf.c | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 445e9a93afe..5f7c6214a3e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-02-08 Jan Hubicka + + PR ipa/63566 + * ipa-icf.c (set_local): New function. + (sem_function::merge): Use it. + 2015-02-08 Jan Hubicka * ipa-devirt.c (odr_types_equivalent_p): Fix formating. diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c index d19ddc321e6..692946ae7b1 100644 --- a/gcc/ipa-icf.c +++ b/gcc/ipa-icf.c @@ -584,6 +584,16 @@ sem_function::equals_private (sem_item *item, return result; } +/* Set LOCAL_P of NODE to true if DATA is non-NULL. + Helper for call_for_symbol_thunks_and_aliases. */ + +static bool +set_local (cgraph_node *node, void *data) +{ + node->local.local = data != NULL; + return false; +} + /* Merges instance with an ALIAS_ITEM, where alias, thunk or redirection can be applied. */ bool @@ -743,10 +753,8 @@ sem_function::merge (sem_item *alias_item) cgraph_node::create_alias (alias_func->decl, decl); alias->resolve_alias (original); - /* Workaround for PR63566 that forces equal calling convention - to be used. */ - alias->local.local = false; - original->local.local = false; + original->call_for_symbol_thunks_and_aliases + (set_local, (void *)(size_t) original->local_p (), true); if (dump_file) fprintf (dump_file, "Callgraph alias has been created.\n\n"); -- 2.30.2