]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR c++/6764 (Throwing exception causes crash with '-O2 -fomit-frame-pointer')
authorRichard Henderson <rth@redhat.com>
Fri, 26 Nov 2004 05:08:45 +0000 (21:08 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Fri, 26 Nov 2004 05:08:45 +0000 (21:08 -0800)
        PR c++/6764
        * reload1.c (set_initial_eh_label_offset): New.
        (set_initial_label_offsets): Use it.

From-SVN: r91329

gcc/ChangeLog
gcc/reload1.c

index 2a9d44641404487494ff34412bdcbaf02a262e31..faf78cc481f9eb803af7bb856ccfd0359b7c3909 100644 (file)
@@ -1,3 +1,9 @@
+2004-11-25  Richard Henderson  <rth@redhat.com>
+
+       PR c++/6764
+       * reload1.c (set_initial_eh_label_offset): New.
+       (set_initial_label_offsets): Use it.
+
 2004-11-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR rtl-optimization/14838
index 81c3fb6a8ced83bcb6fa17ebd1f634307d6b96a8..5e85f144f3f8b3faf81f699bf5359d46f17d89bc 100644 (file)
@@ -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