aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2012-01-02 23:17:02 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2012-01-02 23:17:02 +0100
commita4f436ffbb6a31d9aa56e4bebb7ccd9f7cf3bfe5 (patch)
treecf6fb8c50d40f33b0c570d6a702587a240c9f503 /gcc
parentab807569b6233bc5226dda1e67504d7d09114529 (diff)
downloadgcc-a4f436ffbb6a31d9aa56e4bebb7ccd9f7cf3bfe5.zip
gcc-a4f436ffbb6a31d9aa56e4bebb7ccd9f7cf3bfe5.tar.gz
gcc-a4f436ffbb6a31d9aa56e4bebb7ccd9f7cf3bfe5.tar.bz2
re PR bootstrap/51725 (segfault in stage 3 when compiling gcc/opts.c for sparc64-linux)
PR bootstrap/51725 * cselib.c (add_mem_for_addr): Call canonical_cselib_val on mem_elt first. From-SVN: r182819
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/cselib.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 28db5f9..a53f884 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2012-01-02 Jakub Jelinek <jakub@redhat.com>
+
+ PR bootstrap/51725
+ * cselib.c (add_mem_for_addr): Call canonical_cselib_val
+ on mem_elt first.
+
2012-01-02 Sandra Loosemore <sandra@codesourcery.com>
* doc/invoke.texi (-flto and related options): Copy-edit.
diff --git a/gcc/cselib.c b/gcc/cselib.c
index 4324ffe..fc86ef1 100644
--- a/gcc/cselib.c
+++ b/gcc/cselib.c
@@ -1,7 +1,7 @@
/* Common subexpression elimination library for GNU compiler.
Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
- 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
+ 2012 Free Software Foundation, Inc.
This file is part of GCC.
@@ -1264,6 +1264,8 @@ add_mem_for_addr (cselib_val *addr_elt, cselib_val *mem_elt, rtx x)
{
struct elt_loc_list *l;
+ mem_elt = canonical_cselib_val (mem_elt);
+
/* Avoid duplicates. */
for (l = mem_elt->locs; l; l = l->next)
if (MEM_P (l->loc)