diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-07-01 10:52:48 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-07-03 14:45:33 -0700 |
commit | d0a333612bfb7faf8d61210c831165388e758768 (patch) | |
tree | 2380537f3fbe097a31095aabab7b37eb88c23284 /gcc | |
parent | 3c776fdf1a825818ad7248d442e846f532574ff7 (diff) | |
download | gcc-d0a333612bfb7faf8d61210c831165388e758768.zip gcc-d0a333612bfb7faf8d61210c831165388e758768.tar.gz gcc-d0a333612bfb7faf8d61210c831165388e758768.tar.bz2 |
Use chain_next on eh_landing_pad_d for GTY (PR middle-end/110510)
The backtrace in the bug report suggest there is a running out of
stack during GC collection, because of a long chain of eh_landing_pad_d.
This might fix that by adding chain_next onto eh_landing_pad_d's GTY marker.
OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.
gcc/ChangeLog:
PR middle-end/110510
* except.h (struct eh_landing_pad_d): Add chain_next GTY.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/except.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/except.h b/gcc/except.h index 378a9e4..173b0f0 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; |