https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121932
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Nathaniel Shead from comment #7)
> Sorry for the breakage. Looks like I missed walking DECL_ARGUMENTS of a
> FUNCTION_DECL relies on this; the following patch fixes the minimal
> reproducers of both this and PR 121935, but I'll see if there's any more
> checking I can do. Otherwise I guess I'll revert the last patch and see if
> there's another approach.
>
> diff --git a/gcc/ipa-free-lang-data.cc b/gcc/ipa-free-lang-data.cc
> index 41afc6ec82f..8196cab6079 100644
> --- a/gcc/ipa-free-lang-data.cc
> +++ b/gcc/ipa-free-lang-data.cc
> @@ -735,7 +735,8 @@ find_decls_types_r (tree *tp, int *ws, void *data)
>
> if (TREE_CODE (t) == FUNCTION_DECL)
> {
> - fld_worklist_push (DECL_ARGUMENTS (t), fld);
> + for (tree arg = DECL_ARGUMENTS (t); arg; arg = DECL_CHAIN (arg))
> + fld_worklist_push (arg, fld);
> fld_worklist_push (DECL_RESULT (t), fld);
> }
> else if (TREE_CODE (t) == FIELD_DECL)
I arrived at the same conclusion and posted a patch. LTO bootstrap is usually
a good testing device (not sure if you did that to the patch causing the
issue).