https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119491
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This fixes it but I am not sure about adding another cleanup eh pass: diff --git a/gcc/passes.def b/gcc/passes.def index 9fd85a35a63..d9fff4cf833 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -368,6 +368,7 @@ along with GCC; see the file COPYING3. If not see real warnings (e.g., testsuite/gcc.dg/pr18501.c). */ NEXT_PASS (pass_cd_dce, false /* update_address_taken_p */); NEXT_PASS (pass_sccopy); + NEXT_PASS (pass_cleanup_eh); NEXT_PASS (pass_tail_calls); /* Split critical edges before late uninit warning to reduce the number of false positives from it. */