https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79002
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=115201 Target Milestone|--- |9.0 Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Status|NEW |RESOLVED --- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Richard Biener from comment #5) > Of course the question is why writing (i) makes i addressable in the first > place... (which is why I left this categorized as C++ FE issue) So the front-end issue was fixed in GCC 9 by r9-1417-ge4511ca2e9ecdb (Looks like Jason didn't post the patch to the list because I can't find it). The eh issue I posted a patch to move cleanup_eh right before tail_recusion: https://gcc.gnu.org/pipermail/gcc-patches/2025-August/693108.html (In reply to Richard Biener from comment #5) > Looking at > > NEXT_PASS (pass_cd_dce); > NEXT_PASS (pass_early_ipa_sra); > NEXT_PASS (pass_tail_recursion); > NEXT_PASS (pass_convert_switch); > NEXT_PASS (pass_cleanup_eh); > NEXT_PASS (pass_profile); > NEXT_PASS (pass_local_pure_const); > /* Split functions creates parts that are not run through > early optimizations again. It is thus good idea to do this > late. */ > NEXT_PASS (pass_split_functions); > POP_INSERT_PASSES () > > I think neither switch-conversion nor tail-recursion should enable extra > EH cleanup opportunities so moving cleanup_eh before tail-recursion might > work. I posted my patch without seeing this so at least Richard B. agreed with some of what I mentioned in my patch.