I keep getting Clang errors on the following type of code and I can't figure out why they're erroneous or how to resolve them to Clang's satisfaction:
+ (NSString *)checkForLength:(NSString *)theString error:(NSError **)error
{
    BOOL hasLength = ([theString length] > 0);
    if (hasLength)
    {
     return theString;
    }
    else
    {
     *error = [NSError errorWithDomain:@"ErrorDomain" code:hasLength userInfo:nil];
     return nil;
    }
}
Leaving aside the utterly-contrived nature of the example (which Clang did object to so it's illustrative enough), Clang balks at the error assignment line with the following objection: "Potential null dereference. According to coding standards in 'Creating and Returning NSError Objects' the parameter 'error' may be null"
I like having a pristine Clang report. I've read the cited document and I can't see a way to do what's expected; I checked some open-source Cocoa libraries and this seems to be a common idiom. Any ideas?