[cfe-commits] [PATCH] Tagging NSLog/NSLogv with the __NSString__ format instead of __printf__ format

Ted Kremenek kremenek at apple.com
Fri Jan 20 21:10:31 PST 2012


On Jan 20, 2012, at 2:09 PM, Jean-Daniel Dupas wrote:

> Actually, clang automatically add a "format(printf)" attribute to the declarations of NSLog/NSLogv functions.
> This is actually wrong, as NSLog expect an NSString format attribute. It is not really an issue as the code that checks the format string is the same for printf and NSString,
> but actually I'm working on adding support for CFString format, and having the wrong tag on NSLog functions prevent some code factoring between CFString and NSString format checking.
> 
> Now that NSString format is properly checked, this trick is no longer needed, so I'd like to stop forcing the type to printf, and use NSString instead.

Makes sense.

> 
> This patch also reduce the scope of this hack to objc code only (so if by any change someone write a C library with an NSLog function, clang will not try to tag it with an NSString format attribute).

No need.  NSLog only makes sense in ObjC, since the format string is an NSString, not a C string.  Just keep it simple.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20120120/adcee2dd/attachment.html>


More information about the cfe-commits mailing list