From a4f436ffbb6a31d9aa56e4bebb7ccd9f7cf3bfe5 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek <jakub@redhat.com> Date: Mon, 2 Jan 2012 23:17:02 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/cselib.c | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 28db5f9ec489..a53f8845753b 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 4324ffe50297..fc86ef1affeb 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) -- GitLab