[cfe-dev] Extending printf format string checking to cover ObjC format strings in NSLog
Ted Kremenek
kremenek at apple.com
Mon Jun 16 11:38:23 PDT 2008
On Jun 16, 2008, at 3:42 AM, Jean-Daniel Dupas wrote:
>
> Le 16 juin 08 à 12:28, Nikita Zhuk a écrit :
>
>> Hello,
>>
>> Current printf format string checking is very useful but it's
>> limited to printf -style functions which use C format strings. I
>> would like to propose extending this functionality to cover
>> Objective-C format strings in NSLog function. A simple
>> implementation of this extension is attached to this message.
>>
>> Speaking of format strings in ObjC, are there any plans to extend
>> format string checking to cover ObjC methods which accept format
>> strings as one of their arguments, such as various -[NSString
>> initWithFormat:...] methods?
>>
>> Best regards,
>> Nikita Zhuk
>
>
> Note that '%@' is also supported in CoreFoundation fonctions:
> CFStringCreateWithFormat() for example. If the format string
> checking is extended, you may considere thoses cases and not limite
> it to objc sources.
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:
(kremenek at grue:Sema)$ pwd
/Users/kremenek/llvm/tools/clang/test/Sema
(kremenek at grue:Sema)$ clang -E cocoa.m | grep initWithFormat | grep
String
- (id)initWithFormat:(NSString *)format, ...;
- (id)initWithFormat:(NSString *)format arguments:(va_list)argList;
- (id)initWithFormat:(NSString *)format locale:(id)locale, ...;
- (id)initWithFormat:(NSString *)format locale:(id)locale arguments:
(va_list)argList;
Fortunately, it looks like the set of methods to hardwire support for
is small.
More information about the cfe-dev
mailing list