This fixes ipa-prop to properly re-compute inlinability which
can change from false to true if a mismatched argument is dropped.

Bootstrapped and tested onx 86_64-unknown-linux-gnu, applied.

Richard.

2011-11-6  Richard Guenther  <rguent...@suse.de>

        * ipa-prop.c (ipa_modify_call_arguments): Re-compute
        inlinable flag.

Index: gcc/ipa-prop.c
===================================================================
--- gcc/ipa-prop.c      (revision 181026)
+++ gcc/ipa-prop.c      (working copy)
@@ -2568,8 +2568,11 @@
   gimple_set_block (new_stmt, gimple_block (stmt));
   if (gimple_has_location (stmt))
     gimple_set_location (new_stmt, gimple_location (stmt));
+  gimple_call_set_chain (new_stmt, gimple_call_chain (stmt));
   gimple_call_copy_flags (new_stmt, stmt);
-  gimple_call_set_chain (new_stmt, gimple_call_chain (stmt));
+  if (gimple_call_cannot_inline_p (stmt))
+    gimple_call_set_cannot_inline
+      (new_stmt, !gimple_check_call_matching_types (new_stmt, callee_decl));
 
   if (dump_file && (dump_flags & TDF_DETAILS))
     {

Reply via email to