From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17342 invoked by alias); 26 Mar 2002 17:46:05 -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 17301 invoked by uid 71); 26 Mar 2002 17:46:03 -0000 Date: Tue, 26 Mar 2002 09:46:00 -0000 Message-ID: <20020326174603.17295.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Richard Henderson Subject: Re: c/3711: ICE in instantiate_virtual_regs_1, at function.c:3880 Reply-To: Richard Henderson X-SW-Source: 2002-03/txt/msg00988.txt.bz2 List-Id: The following reply was made to PR c/3711; it has been noted by GNATS. From: Richard Henderson To: Nicola Pero Cc: gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org, GNUstep Developers Subject: Re: c/3711: ICE in instantiate_virtual_regs_1, at function.c:3880 Date: Tue, 26 Mar 2002 09:41:07 -0800 On Tue, Mar 26, 2002 at 11:53:03AM +0000, Nicola Pero wrote: > Hmmm ... well this testcase arrives from a real example ... forwarding > code in some advanced OO stuff which worked perfectly well with all GCC > releases up to now (code from mframe.m in gnustep-base). No it didn't. It worked perfectly well *with some particular abi*, which is not the same thing. > So I can use SMSmessages in place of a struct {char text[255];} everywhere > I want, but I can't pass it in place of a struct {char text[255];} to a > function ? Correct. > This is very confusing for users I must say. And it is not how it worked > in previous versions of the compiler. Yes it is. Like I said, this has *never* worked on sparc64, and never will. > I think you understood what the function in the testcase "wants/needs" to > do - which is that it can be called with an arbitrary struct (fixed size) > as the second argument, and it is informed of the size of the struct from > the first argument (which is just to say, a source providing the info at > runtime), and it needs to be able to access the bytes in the struct. Why don't you just pass a pointer to the structure all the time? r~