> On Jul 30, 2015, at 1:05 AM, AlexDenisov <1101.deb...@gmail.com> wrote: > > The patch is a simplest fix for crash when CheckObjCCircularContainer > applies to a message to a ’super’, e.g.: > > @implementation Foo : NSMutableArray > - foo { > [super addObject:nil]; > } > @end > > > This is, probably, not a proper fix for the problem, > but initial patch wasn’t intended to apply checks to any kind > of subclassing, because it, imho, over-complicates implementation:
To clarify, are you saying that the warning may lead to false positives when used in subclasses ? If that’s the case could we just disable it inside collection subclasses, at least until the false positives can be addressed ? > > This particular problem touches subclassing from a class-cluster, > which means that the concrete subclass will have some backing storage, e.g.: > > @implementation FootableArray : NSMutableArray > { > NSMutableArray *_backingStorage; > } > > - addObject:(id)object { > [_backingStorage addObject:object]; > } > > @end > > In this case even adding `self` to `self` would not lead to a circular > container: > > - foo { > [self addObject:self]; // puts `self` into the `_backingStorage` > } > > I would apply this patch as is and postpone a ‘proper and bullet-proof > implementation’ > when I, or somebody who is also interested, will have more time. > > If there are any questions/suggestions/objections - let’s discuss them. > -- > AlexDenisov > Software Engineer, http://lowlevelbits.org > > > <fix_circular_container_crash.patch> _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits