From: Richard Henderson Date: Fri, 26 Nov 2004 05:08:45 +0000 (-0800) Subject: re PR c++/6764 (Throwing exception causes crash with '-O2 -fomit-frame-pointer') X-Git-Tag: releases/gcc-3.3.6~224 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1d632763fecf8f939f6bfe4de8735b50e5cddf1c;p=thirdparty%2Fgcc.git 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: r91329 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2a9d44641404..faf78cc481f9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-11-25 Richard Henderson + + PR c++/6764 + * reload1.c (set_initial_eh_label_offset): New. + (set_initial_label_offsets): Use it. + 2004-11-22 John David Anglin PR rtl-optimization/14838 diff --git a/gcc/reload1.c b/gcc/reload1.c index 81c3fb6a8ced..5e85f144f3f8 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -3389,6 +3389,16 @@ set_initial_elim_offsets () 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 PARAMS ((rtx)); +static void +set_initial_eh_label_offset (label) + 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 @@ -3405,6 +3415,8 @@ set_initial_label_offsets () 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