aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2023-07-01 10:52:48 -0700
committerAndrew Pinski <apinski@marvell.com>2023-07-03 14:45:33 -0700
commitd0a333612bfb7faf8d61210c831165388e758768 (patch)
tree2380537f3fbe097a31095aabab7b37eb88c23284 /gcc
parent3c776fdf1a825818ad7248d442e846f532574ff7 (diff)
downloadgcc-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.h2
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;