This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
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))