c/3711: ICE in instantiate_virtual_regs_1, at function.c:3880
Richard Henderson
rth@redhat.com
Tue Mar 26 10:08:00 GMT 2002
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~
More information about the Gcc-bugs
mailing list