Subject: Re: bogus line in i386/isa/npx.c?
To: David Gluss <david@pure.com>
From: J.T. Conklin <jconklin@netcom.com>
List: port-i386
Date: 07/14/1995 12:23:07
> I tried building gcc2.7.0 and recompiling the kernel. All went
> OK except for one line in npx.c, which invokes a macro that is
> a "asm" statement:
> Well, the operand isn't in memory, it's in a register. I guess.
> Though *addr is a memory location. Anyway, gcc2.7.0 barfs at this.
> So my question is, is this a misstatement of the __asm line that 2.4.5
> blissfully ignores? Is this a bug in 2.7.0?
It's a bug in gcc. It's been there a long time, and has manifested
itself on other ports too. I believe that gcc decides to allocate a
register for the variable, and then crashes later when the constraints
of the asm() don't match.
I think there are several places in the tree where:
(void) &foo;
expressions are used to force variables to be stored in memory.
--jtc