Fix for PR ipa/63851 and ipa/63852.
PR ipa/63851 PR ipa/63852 * ipa-icf.c (sem_function::merge): Ignore merge operation for a thunk created from static chain. * ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that types have same restrict flag. From-SVN: r219042
This commit is contained in:
parent
960389139b
commit
34b42fb0ea
3 changed files with 20 additions and 0 deletions
|
@ -1,3 +1,12 @@
|
|||
2014-12-23 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR ipa/63851
|
||||
PR ipa/63852
|
||||
* ipa-icf.c (sem_function::merge): Ignore merge operation
|
||||
for a thunk created from static chain.
|
||||
* ipa-icf-gimple.c (func_checker::compatible_types_p): Verify that
|
||||
types have same restrict flag.
|
||||
|
||||
2014-12-22 John David Anglin <danglin@gcc.gnu.org>
|
||||
|
||||
PR target/55023
|
||||
|
|
|
@ -185,6 +185,9 @@ bool func_checker::compatible_types_p (tree t1, tree t2,
|
|||
if (TREE_CODE (t1) != TREE_CODE (t2))
|
||||
return return_false_with_msg ("different tree types");
|
||||
|
||||
if (TYPE_RESTRICT (t1) != TYPE_RESTRICT (t2))
|
||||
return return_false_with_msg ("restrict flags are different");
|
||||
|
||||
if (!types_compatible_p (t1, t2))
|
||||
return return_false_with_msg ("types are not compatible");
|
||||
|
||||
|
|
|
@ -694,6 +694,14 @@ sem_function::merge (sem_item *alias_item)
|
|||
return 0;
|
||||
}
|
||||
|
||||
if (DECL_STATIC_CHAIN (alias->decl))
|
||||
{
|
||||
if (dump_file)
|
||||
fprintf (dump_file, "Thunk creation is risky for static-chain functions.\n\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
alias->icf_merged = true;
|
||||
ipa_merge_profiles (local_original, alias);
|
||||
alias->create_wrapper (local_original);
|
||||
|
|
Loading…
Add table
Reference in a new issue