This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: PR bootstrap/32764: [4.3 regression] : Failed to bootstrap on Linux/ia64


On Fri, Jul 13, 2007 at 10:24:08PM -0700, Andrew Pinski wrote:
> On 7/13/07, H.J. Lu <hjl@lucon.org> wrote:
> >This patch checks NULL src before using REG_P (src). It works on
> >Linux/ia32, Linux/Intel64 and Linux/ia64.
> 
> I don't think this is the correct fix.  The real issue is that
> find_src_status/find_src_set_src does not handle cond_exec.  Please
> try handling cond_exec.
> 

This patch also works for me.


H.J.
----
2007-07-14  H.J. Lu  <hongjiu.lu@intel.com>

	PR bootstrap/32764
	* var-tracking.c (add_stores): Skip COND_EXEC.
	(find_src_status): Assert src != NULL_RTX.
	(find_src_set_src): Likewise.

--- gcc/var-tracking.c.bad	2007-07-13 19:38:08.000000000 -0700
+++ gcc/var-tracking.c	2007-07-14 08:03:12.000000000 -0700
@@ -1759,6 +1759,9 @@ add_uses_1 (rtx *x, void *insn)
 static void
 add_stores (rtx loc, rtx expr, void *insn)
 {
+  if (GET_CODE (PATTERN ((rtx) insn)) == COND_EXEC)
+    return;
+
   if (REG_P (loc))
     {
       basic_block bb = BLOCK_FOR_INSN ((rtx) insn);
@@ -1824,6 +1827,8 @@ find_src_status (dataflow_set *in, rtx l
 	  src = SET_SRC (XVECEXP (PATTERN (insn), 0, i));
     }
 
+  gcc_assert (src != NULL_RTX);
+
   if (REG_P (src))
     decl = var_debug_decl (REG_EXPR (src));
   else if (MEM_P (src))
@@ -1862,6 +1867,8 @@ find_src_set_src (dataflow_set *set, rtx
 	  src = SET_SRC (XVECEXP (PATTERN (insn), 0, i));
     }
 
+  gcc_assert (src != NULL_RTX);
+
   if (REG_P (src))
     decl = var_debug_decl (REG_EXPR (src));
   else if (MEM_P (src))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]