Since eh_catch_d is double linked list, let's add chain_next
and chain_prev preemptively just in case there is another GC
issue where we get a huge recursion for this struct.

Pushed as obvious after bootstrap/test on x86_64-linux-gnu.

        PR middle-end/127602

gcc/ChangeLog:

        * except.h (struct eh_catch_d): Add chain_next and chain_prev
        GTY.

Signed-off-by: Andrea Pinski <[email protected]>
---
 gcc/except.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/except.h b/gcc/except.h
index 1988d9f4ad7..657b019b8af 100644
--- a/gcc/except.h
+++ b/gcc/except.h
@@ -92,7 +92,7 @@ struct GTY((chain_next("%h.next_lp"))) eh_landing_pad_d
 
 /* A catch handler associated with an ERT_TRY region.  */
 
-struct GTY(()) eh_catch_d
+struct GTY((chain_next("%h.next_catch"), chain_prev("%h.prev_catch"))) 
eh_catch_d
 {
   /* The double-linked list of all catch handlers for the region.  */
   struct eh_catch_d *next_catch;
-- 
2.43.0

Reply via email to