------- Comment #8 from pinskia at physics dot uc dot edu  2007-01-23 00:29 
-------
Subject: Re:  -Wno-deprecated needed also for C

> manu at gcc dot gnu dot org wrote:
> > ------- Comment #4 from manu at gcc dot gnu dot org  2007-01-23 00:01 
> > -------
> > The testcase given is not valid any more. Could you think in any other
> > testcase?
> > 
> > In stmt.c (expand_asm_operands) there is:
> > 
> >             warning (0, "use of memory input without lvalue in "
> >                        "asm operand %d is deprecated", i + noutputs);
> > 
> > 
> 
> Hang on, hang on...
> 
> WTF?!  Using an rvalue in an assembly input that may contain "m" is 
> something that is highly useful, and it will break metric tons of code. 
>   -Wno-deprecated or no -Wno-deprecated, deprecating this particular 
> construct is a major mistake.

This has been true since 3.3.3 and in fact, this was made an error in 4.0.0,
even though the warning remains.  Also what is deprecated/removed is not may
contain a memory constraint but an input which only contains memory
constraints.

So:
float f(float a)
{
  asm(""::"mo"((double)a));
  return a;
}

Fails but:
float f(float a)
{
  asm(""::"mr"((double)a));
  return a;
}

Works.


-- Pinski


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11051

Reply via email to