https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110510
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- It does not look like an infinite recursion but rather the chain of eh_landing_pad_d is not mentioned to the GC so it does not do an inline-tail call. This might fix the issue: diff --git a/gcc/except.h b/gcc/except.h index 378a9e4cb77..087d0004c6d 100644 --- a/gcc/except.h +++ b/gcc/except.h @@ -66,7 +66,7 @@ enum eh_region_type /* A landing pad for a given exception region. Any transfer of control from the EH runtime to the function happens at a landing pad. */ -struct GTY(()) eh_landing_pad_d +struct GTY((chain_next(%h.next_lp))) eh_landing_pad_d { /* The linked list of all landing pads associated with the region. */ struct eh_landing_pad_d *next_lp;