From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17654 invoked by alias); 1 Apr 2008 08:52:49 -0000 Received: (qmail 17545 invoked by alias); 1 Apr 2008 08:52:12 -0000 Date: Tue, 01 Apr 2008 08:52:00 -0000 Message-ID: <20080401085212.17544.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug middle-end/35768] gcc.c-torture/compile/20010226-1.c:22: ICE: in do_output_reload, at reload1.c:7331 In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "rsandifo at nildram dot co dot uk" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2008-04/txt/msg00029.txt.bz2 ------- Comment #6 from rsandifo at nildram dot co dot uk 2008-04-01 08:52 ------- Subject: Re: gcc.c-torture/compile/20010226-1.c:22: ICE: in do_output_reload, at reload1.c:7331 "dave at hiauly1 dot hia dot nrc dot ca" writes: >> I suppose the assumption in pa.md is that the scratch output reload >> should be in the same mode as the input operand. > > I think the constraint should be changed from "=&0" to "+&0" to indicate > that the operand is both read and written. Possibly, this will fix the > problem. Well, "=" is correct for matching operands; "+" isn't. As I say, the problem is simply that we have something that is logically an output value -- (scratch) -- but that does not have a mode. Changing "=" to "+" wouldn't solve that; the (scratch) would still be an output value. Richard -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35768