https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64835
--- Comment #5 from chrbr at gcc dot gnu.org --- (In reply to Martin Jambor from comment #1) > The problem is that in the testcase iinline-1.c as it is in the > testsuite, we use -fno-ipa-cp on the command line so that the > interprocedural phase of IPA-CP is not run so that it does not > interfere with the interprocedural stage of inlining, which however > uses information gathered by the function body analysis of ipa-prop > (which is invoked by both IPA-CP and inlining). However, when we > inspect the function specific optimizations in ipa-prop at this stage, > we bail out if we see -fno-ipa-cp. > > So yes, there is a clear inconsistency, but at the same time, having > the ability to switch off only the interprocedural part of IPA-CP is > extremely convenient for testing how the inliner uses jump functions > and other stuff gathered by ipa-prop. I'll try to come up with some > fix. Hi Martin, back to fixing this problem, after the initial set of patch I think the function static bool ipa_func_spec_opts_forbid_analysis_p (struct cgraph_node *node) { tree fs_opts = DECL_FUNCTION_SPECIFIC_OPTIMIZATION (node->decl); if (!fs_opts) return false; return !opt_for_fn (node->decl, optimize) || !opt_for_fn (node->decl, flag_ipa_cp); } should always return false, and have a coherent analysis between global optimizations and function specific optimizations, now that the ipa-inline checks are fixed. so testing this. seems to fix the testcase at first sight.