Hi, gcc.dg/lto/20090218-1.c contains cross module call into always_inline function. At -O0 -flto we used to report nothing since optimize_inline_calls was not called. With my change we report it as error.
I am not sure what is desired behaviour, but for now I am restoring the previous situation that is consistent with non-lto build. I suppose it is good thing to do given that we promise always inlines to be always inline only within given module. I am testing the patch on x86_64-linux and will commit it if testing passes. Honza * ipa-inline-transform.c (inline_transform): Do not optimize inline calls when not optimizing. Index: ipa-inline-transform.c =================================================================== --- ipa-inline-transform.c (revision 202182) +++ ipa-inline-transform.c (working copy) @@ -432,7 +432,7 @@ inline_transform (struct cgraph_node *no ipa_remove_all_references (&node->symbol.ref_list); timevar_push (TV_INTEGRATION); - if (node->callees) + if (node->callees && optimize) todo = optimize_inline_calls (current_function_decl); timevar_pop (TV_INTEGRATION);