The following class generates a NullDereference warning: @interface TestAssert : NSObject { } @end @implementation TestAssert - (id)initWithPointer: (int*)x { NSParameterAssert( x != nil ); NSAssert( x != nil, @"" ); if( (self = [super init]) != nil ) { *x = 1; } return self; } @end Although the checker seems to understand assert(), both NSAssert() and NSParameterAssert() are ignored, causing false positives like the above. Maybe this falls under inter-procedure checking, but given that assert() fails to trigger the above warning, I'm suspecting it is it's own special case.
Fixed in r53993: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20080721/006665.html Will be rolled into checker-69.