https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127326

--- Comment #11 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Uroš Bizjak from comment #10)
> (In reply to Uroš Bizjak from comment #7)
> > Even with the patch, compiler still errors out with slightly changed
> > testcase:
> > 
> > --cut here--
> > unsigned long long foo (void)
> > {
> >   union { _Decimal128 d; unsigned long long u[2]; } u;
> >   u.d = 1.0DL;
> >   __asm ("" : "+g" (u.d));
> >   return u.u[1] + u.u[2];
> > }
> > --cut here--
> > 
> > $ gcc -O2 -m32 inout.c 
> > inout.c: In function ‘test’:
> > inout.c:5:3: error: inconsistent operand constraints in an ‘asm’
> >     5 |   __asm ("" : "+g" (u.d));
> >       |   ^~~~~
> 
> This is with the patch from PR124209 applied, where patched compiler is
> still not able to resolve:

I reproduced this for the patched compiler.  I started to work on it.  I guess
the fix will be ready tomorrow.

Reply via email to