jfb added a comment.

In https://reviews.llvm.org/D42933#1090286, @smeenai wrote:

> Note that the alignment matters in addition to the size.


Sure, but AFAICT from `./lib/Basic/Targets/*` the alignment is also specified 
properly, is it not?

> The pattern I've seen internally is people using `%zd` for NSInteger and 
> `%tu` for NSUInteger, since until clang 6 neither of those were 
> format-checked at all.
> 
> I'd be fine with adding an option to relax the printf checking if the size 
> and alignment of the specifier and the actual type match, even if the types 
> themselves differ (`-Wformat-relaxed` or something similar), so that you'd 
> still get warnings on cases where the specifier mismatch could cause runtime 
> issues.

What are the cases that you're worried about? The only ones I'm trying to 
capture here are `NSInteger` with `%zd` and `NSUInteger` with `%zu`, are there 
others?

> I think that would be preferable to special-casing the Apple types.

If there are more that should be captured and a similar point solution doesn't 
apply, agreed. However I'd like to understand if we agree on the guarantees 
that the platform offers for the two specific cases I'm targeting.


Repository:
  rC Clang

https://reviews.llvm.org/D42933



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to