This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug inline-asm/11564] [3.3/3.4 regression] no longer compilable inline asm breaks linux kernel compile
- From: "pinskia at physics dot uc dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 Jul 2003 21:14:03 -0000
- Subject: [Bug inline-asm/11564] [3.3/3.4 regression] no longer compilable inline asm breaks linux kernel compile
- References: <20030717204658.11564.sirl@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11564
pinskia at physics dot uc dot edu changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[3.3 regression] no longer |[3.3/3.4 regression] no
|compilable inline asm breaks|longer compilable inline asm
|linux kernel compile |breaks linux kernel compile
------- Additional Comments From pinskia at physics dot uc dot edu 2003-07-17 21:13 -------
It also happens on the mainline (20030717) but I think this code is invalid as the error
meesages, it is not a lvalue.
I think the correct thing to do is to correct the code:
void f (struct id *dev, unsigned int size, int idx)
{
int t;
__asm__ __volatile__
("" : "=r" (t));
if(size == 4u)
dev->u.kc32[idx] = t;
else
dev->u.kc16[idx] = t;
return;
}
Which produces the same results on 2.95.3 as previous code and actually compiles on
3.3 and the mainline.