> 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