https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120987
--- Comment #21 from Tom de Vries <vries at gcc dot gnu.org> --- (In reply to Tom de Vries from comment #20) > Seems to be fixed by: > ... > diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c > index 9e537b04196..fbdf8da36df 100644 > --- a/gcc/ipa-modref.c > +++ b/gcc/ipa-modref.c > @@ -5109,7 +5109,6 @@ ipa_merge_modref_summary_after_inlining (cgraph_edge > *edge) > cgraph_node *n; > for (n = edge->caller; n->inlined_to; n = n->callers->caller) > flags |= flags_from_decl_or_type (n->decl); > - flags |= flags_from_decl_or_type (n->decl); > bool ignore_stores = ignore_stores_p (edge->caller->decl, flags); > > if (!callee_info && to_info) > ... Which causes this difference in test-2.c.085i.modref: ... - parm 0 flags: no_direct_clobber no_direct_escape no_indirect_escape + parm 0 flags: no_direct_escape ... in the analysis of throw_exception. I don't understand these flags very well, but my guess is that it's the no_direct_clobber that is causing the problems.