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