> On Nov 29, 2015, at 6:53 PM, David Wohlferd <d...@limegreensocks.com> wrote:
> 
> 
> 
> On 11/28/2015 10:30 AM, paul_kon...@dell.com wrote:
>>> On Nov 28, 2015, at 2:02 AM, Bernd Edlinger <bernd.edlin...@hotmail.de> 
>>> wrote:
>>> 
>>> ...
>>> Well, I start to think that Jeff is right, and we should treat a asm ("") 
>>> as if it
>>> were asm volatile ("" ::: ) but if the asm ("nonempty with optional %") we 
>>> should
>>> treat it as asm volatile ("nonempty with optional %%" ::: "memory").
>> I agree.  Even if that goes beyond the letter of what the manual has 
>> promised before, it is the cautious answer, and it matches expectations of a 
>> lot of existing code.
> 
> Trying to guess what people might have been expecting is a losing game.  
> There is a way for people to be clear about what they want to clobber, and 
> that's to use extended asm.  The way to clear up the ambiguity is to start 
> deprecating basic asm, not to add to the confusion by changing its behavior 
> after all these years.
> 
> And the first step to do that is to provide a means of finding them.  That's 
> what the patch at https://gcc.gnu.org/ml/gcc/2015-11/msg00198.html does.
> 
> Once they are located, people can decide for themselves what to do. If they 
> favor the 'cautious' approach, they can change their asms to use :::"memory" 
> (or start clobbering registers too, to be *really* safe).  For people who 
> require maximum backward compatibility and/or minimum impact, they can use 
> :::.
> 
> Have you tried that patch?  How many warnings does it kick out for your 
> projects?

The trouble with warnings is that they only help with projects that are 
currently maintained.

        paul

Reply via email to