From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18076 invoked by alias); 7 Oct 2002 18:46:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 18059 invoked by uid 71); 7 Oct 2002 18:46:03 -0000 Date: Mon, 07 Oct 2002 11:46:00 -0000 Message-ID: <20021007184603.18058.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Richard Henderson Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64 Reply-To: Richard Henderson X-SW-Source: 2002-10/txt/msg00269.txt.bz2 List-Id: The following reply was made to PR target/8087; it has been noted by GNATS. From: Richard Henderson To: Roger Sayle Cc: "David S. Miller" , davem@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, ghazi@caip.rutgers.edu, jakub@redhat.com, gcc-gnats@gcc.gnu.org Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64 Date: Mon, 7 Oct 2002 11:38:27 -0700 On Mon, Oct 07, 2002 at 12:04:10PM -0600, Roger Sayle wrote: > (mem/u/f:DF (lo_sum:DI (reg/f:DI 110) > (symbol_ref/u:DI ("*.LLC0"))) [2 S8 A64] > > The problem is that the code in "avoid_constant_pool_reference" > in simplify-rtx.c (line 149), assumes that constant pool references > are of the form "(mem (symbol_ref ...))". Indeed the macro > CONSTANT_POOL_ADDRESS_P assumes that it is always passed a naked > symbol_ref. *That* is a bug. The lo_sum is a perfectly respectable way to do this. > + if (GET_CODE (addr) == LO_SUM > + && GET_CODE (XEXP (addr, 1)) == SYMBOL_REF) > + addr = XEXP (addr, 1); Yes, this is reasonable. You don't even need the SYMBOL_REF check here, since that'll get handled ... > if (GET_CODE (addr) != SYMBOL_REF > || ! CONSTANT_POOL_ADDRESS_P (addr)) ... here. r~