Two small ARC fixes:
Two small ARC fixes:

- Make objc_retain() check for stack blocks and implicitly copy them.  This fixes the case where a block pointer is stored in an object-typed variable and is assigned.
- Tweak objc_retainAutoreleaseReturnValue() so that the ARC optimiser doesn't detect that the body looks like a call to objc_retainAutoreleaseReturnValue() and replace it with an infinitely recursive call.

The second fix now means that arc.m will compile with clang without producing a function that calls itself.



git-svn-id: f6517e426f81db5247881cd92f7386583ace04fa@33455 72102866-910b-0410-8b05-ffd578937521

skudryas/gnustep-libobjc2,skudryas/gnustep-libobjc2,crontab/libobjc2,crontab/libobjc2