Hi, this patch fixes ICE where we manage to lose the CIF_FINAL failure on inlining.
Bootstrapped/regtested x86_64-linux, comitted. Honza PR ipa/83051 * ipa-inline.c (flatten_function): Do not overwrite final inlining failure. * gcc.c-torture/compile/pr83051-2.c: New testcase. Index: ipa-inline.c =================================================================== --- ipa-inline.c (revision 256795) +++ ipa-inline.c (working copy) @@ -2083,7 +2083,8 @@ flatten_function (struct cgraph_node *no "Not inlining %s into %s to avoid cycle.\n", xstrdup_for_dump (callee->name ()), xstrdup_for_dump (e->caller->name ())); - e->inline_failed = CIF_RECURSIVE_INLINING; + if (cgraph_inline_failed_type (e->inline_failed) != CIF_FINAL_ERROR) + e->inline_failed = CIF_RECURSIVE_INLINING; continue; } Index: testsuite/gcc.c-torture/compile/pr83051-2.c =================================================================== --- testsuite/gcc.c-torture/compile/pr83051-2.c (revision 0) +++ testsuite/gcc.c-torture/compile/pr83051-2.c (working copy) @@ -0,0 +1,12 @@ +/* { dg-options "-fno-early-inlining" } */ +void +bar () +{ + bar (0); +} + +__attribute__ ((flatten)) +void foo () +{ + bar (); +}