From 1929b9988c98e9a806b57e73fd3a9885b63643e0 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Thu, 16 Feb 2006 01:26:54 +0000 Subject: [PATCH] re PR rtl-optimization/25636 (opts.c is being miscompiled, write to read only memory) PR rtl-optimization/25636 * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test when deciding whether an insn is an initializing insn. From-SVN: r111129 --- gcc/ChangeLog | 6 ++++++ gcc/local-alloc.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50477ba7a2e..c424d64ec29 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-02-16 Bernd Schmidt + + PR rtl-optimization/25636 + * local-alloc.c (update_equiv_regs): Lose a bogus rtx_equal_p test + when deciding whether an insn is an initializing insn. + 2006-02-15 Daniel Berlin * tree.c (init_ttree): Add STRUCT_FIELD_TAG handling. diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index d22e9e736fb..820e0b654bf 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -1,6 +1,7 @@ /* Allocate registers within a basic block, for GNU compiler. Copyright (C) 1987, 1988, 1991, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, + Inc. This file is part of GCC. @@ -962,8 +963,7 @@ update_equiv_regs (void) /* If we haven't done so, record for reload that this is an equivalencing insn. */ - if (!reg_equiv[regno].is_arg_equivalence - && (!MEM_P (x) || rtx_equal_p (src, x))) + if (!reg_equiv[regno].is_arg_equivalence) reg_equiv_init[regno] = gen_rtx_INSN_LIST (VOIDmode, insn, reg_equiv_init[regno]); -- 2.30.2