statement expressions and extended asm bug?
Hans-Peter Nilsson
hp@bitrange.com
Wed Mar 17 15:36:00 GMT 2004
On Tue, 16 Mar 2004, Kai Henningsen wrote:
> gni@gecko.de (Gunther Nikl) wrote on 15.03.04 in <20040315112744.GA86063@lorien.int.gecko.de>:
>
> > #define f1() \
> > ({ register int _d0 __asm("d0"); \
> > __asm volatile ("moveq #11,d0" : "=r" (_d0) : /**/ : "fp0", "fp1", "cc",
> > "memory"); \ _d0; })
>
> If the problem is the possibility of returning lvalues from statement
> expressions, what would happen with the following?
>
> #define f1() \
> ({ register int _d0 __asm("d0"); \
> __asm volatile ("moveq #11,d0" : "=r" (_d0) : /**/ : "fp0", "fp1", "cc",
> "memory"); \ _d0 + 0; })
>
> (The only change is at the end.)
That *should work*. It it doesn't, it's a bug.
brgds, H-P
More information about the Gcc
mailing list