On Aug 6, 2012, at 5:42 PM, Jordan Rose wrote:

> 
> On Aug 6, 2012, at 17:37 , Fariborz Jahanian <[email protected]> wrote:
> 
>> 
>> On Aug 6, 2012, at 5:09 PM, Jordan Rose wrote:
>> 
>>> Why does this only warn under non-GC?
>> 
>> I don't know. This is an old GCC option and brought it over as-is to clang. 
>> I don't have the original gcc radar
>> to look for the rational. Could be that under GC it is safe to do direct 
>> assignment while with the advent of
>> properties, users warn to catch such accesses and use the property syntax 
>> which controls the ivar
>> access with its own APIs (think atomic vs non-atomic).
> 
> The same is true under ARC, though. If this is a safety warning, it only 
> really needs to be on for MRC and __unsafe_unretained ivars. I think it's 
> more often a consistency thing, though: if you want Key-Value Observing to 
> work right you have to use the properties.
> 
> As a heuristic, people often access ivars directly in -init methods and in 
> -dealloc, since properties may be overridden by subclasses. If we were going 
> to split the difference on the warnings, it could be on by default everywhere 
> except -init and -dealloc methods.

My intention was to closely follow gcc's behavior wrt -Wdirect-ivar-access. In 
r161426 I have added to ignore arc for this class of warnings. 
arc already issues numerous
warnings on unsafe assignment to ivars and this option is not in the scope of 
what is was meant for. I made one change based on your
comment though and it is to allow direct ivar access in init/dealloc families.

- Fariborz


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

Reply via email to