[PATCH Reload fix for gcc.dg/20001108-1.c

Jakub Jelinek jakub@redhat.com
Sun Nov 12 07:02:00 GMT 2000


Hi!

This patch fixes gcc.dg/20001108-1.c. The issue is that ia32 floating point jumps
are parallels which set_label_offsets was not accepting, so the destination
label offsets_at was not updated. (we're having here severe networking
problems, so I have no idea when this makes it into gcc-patches and/or
whether somebody fixed it in the mean time).

2000-11-10  Jakub Jelinek  <jakub@redhat.com>

	* reload1.c (set_label_offsets): Go inside of PARALLELs.

--- gcc/reload1.c.jj	Tue Nov  7 22:07:54 2000
+++ gcc/reload1.c	Fri Nov 10 11:30:52 2000
@@ -2089,11 +2089,12 @@ set_label_offsets (x, insn, initial_p)
 	  set_label_offsets (XEXP (tem, 0), insn, 1);
       return;
 
+    case PARALLEL:
     case ADDR_VEC:
     case ADDR_DIFF_VEC:
-      /* Each of the labels in the address vector must be at their initial
-	 offsets.  We want the first field for ADDR_VEC and the second
-	 field for ADDR_DIFF_VEC.  */
+      /* Each of the labels in the parallel or address vector must be
+	 at their initial offsets.  We want the first field for PARALLEL
+	 and ADDR_VEC and the second field for ADDR_DIFF_VEC.  */
 
       for (i = 0; i < (unsigned) XVECLEN (x, code == ADDR_DIFF_VEC); i++)
 	set_label_offsets (XVECEXP (x, code == ADDR_DIFF_VEC, i),

	Jakub


More information about the Gcc-patches mailing list