[cfe-dev] Extending printf format string checking to cover ObjC format strings in NSLog
Ted Kremenek
kremenek at apple.com
Mon Jun 16 13:15:55 PDT 2008
On Jun 16, 2008, at 1:13 PM, Nikita Zhuk wrote:
>
> On 16.6.2008, at 21.38, Ted Kremenek wrote:
>
>> This functionality should eventually go in as well. The set of
>> such CF functions should be small. Other functions that use
>> Objective-C style format strings should generally be labeled with
>> the __NSString__ attribute. Unfortunately, it looks like the
>> "initWithFormat:" methods do not have this attribute:
>>
>> Fortunately, it looks like the set of methods to hardwire support
>> for is small.
>
> I wasn't aware of format(__NSString__) attribute, but it would
> clearly be beneficial to recognize format NSStrings based on it.
>
> Actually the NSLog() function seems to be the only function or
> method in AppKit & Foundation headers which uses this attribute.
> I've found several functions and methods which use format NSStrings
> and don't use the format(__NSString__) attribute: 12 functions in
> AppKit/NSPanel.h, 4 functions in CoreFoundation/CFString.h, 4
> methods in Foundation/NSException.h and 8 methods in Foundation/
> NSString.h.
> So hardcoding both function and method names seems inevitable.
>
> - Nikita
Agreed. Unfortunately, this kind of redundancy is necessary. Within
Apple I can file bug reports to get the headers fixed, but clearly
that only works for code going forward.
More information about the cfe-dev
mailing list