diff options
author | Richard Henderson <rth@redhat.com> | 2004-11-25 18:04:11 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-11-25 18:04:11 -0800 |
commit | 58767f002acb70b56e3d342607a2c9789bf761e8 (patch) | |
tree | 3fa952152c9b5c12679f9886dabc9757ef4bd77b /gcc/reload1.c | |
parent | c9ffaa8d79d65e1386541e508c8c281c9b63428e (diff) | |
download | gcc-58767f002acb70b56e3d342607a2c9789bf761e8.zip gcc-58767f002acb70b56e3d342607a2c9789bf761e8.tar.gz gcc-58767f002acb70b56e3d342607a2c9789bf761e8.tar.bz2 |
re PR c++/6764 (Throwing exception causes crash with '-O2 -fomit-frame-pointer')
PR c++/6764
* reload1.c (set_initial_eh_label_offset): New.
(set_initial_label_offsets): Use it.
From-SVN: r91318
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index 9ffa798..c90c8b6 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3316,6 +3316,14 @@ set_initial_elim_offsets (void) num_not_at_initial_offset = 0; } +/* Subroutine of set_initial_label_offsets called via for_each_eh_label. */ + +static void +set_initial_eh_label_offset (rtx label) +{ + set_label_offsets (label, NULL_RTX, 1); +} + /* Initialize the known label offsets. Set a known offset for each forced label to be at the initial offset of each elimination. We do this because we assume that all @@ -3332,6 +3340,8 @@ set_initial_label_offsets (void) for (x = forced_labels; x; x = XEXP (x, 1)) if (XEXP (x, 0)) set_label_offsets (XEXP (x, 0), NULL_RTX, 1); + + for_each_eh_label (set_initial_eh_label_offset); } /* Set all elimination offsets to the known values for the code label given |