On Dec 11, 2009, at 12:28 PM, Mike Stump wrote:

> On Dec 10, 2009, at 7:37 PM, Eli Friedman wrote:
>>> It is annoying when
>>> 
>>> int foo() {
>>> asm xor eax, eax
>>> }
>>> 
>>> gives a warning.
>> 
>> If that actually works,
> 
> Yes, that works.

No it doesn't.  It happens to get lucky in many cases, but it doesn't work.

>> it's pure luck.
> 
> I'd call it careful engineering.

If you look at the IR generated by llvm-gcc, there is nothing that prevents the 
compiler from clobbering EAX after the asm.  There is nothing 'careful' about 
this.

Please revert r91073.

>>> Bear in mind, gcc's policy for:
>>> 
>>> asm int foo() {
>>> xor eax, eax
>>> }
>>> 
>>> is to _not_ give the warning.
>> 
>> Yes; we should follow gcc's lead here.
> 
> :-)

Whole function asm blocks are a completely different thing.  Your patch is 
wrong, please revert it.

-Chris
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to