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
+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
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");
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);