jfb added a comment.

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

> Yeah, I think we all agree now that a portability warning isn't really 
> tractable. Note that even for the warnings that motivated this diff, they 
> should have only fired if `size_t` and NSInteger had separate types, so it 
> wasn't a portability warning in that sense to begin with (as in, it would 
> only warn if there was a mismatch for your current target, not if there was a 
> potential mismatch for any target).
>
> We still have two options:
>
> 1. Special-case NSInteger/NSUInteger on Apple platforms so that they can 
> always be printed using `%z` without any issues.
> 2. Relax the format specifier warnings (either under a new warning option, 
> e.g. `-Wformat-relaxed`, or by relaxing `-Wformat` itself and adding 
> something like `-Wformat-pedantic`) so that you don't warn when the specifier 
> and the actual type have the same size and alignment, even when the actual 
> type is different (which would also cover the case in 1).
>
>   I'm personally in favor of 2, and I can start a discussion on cfe-dev if 
> you think we should try to achieve a broader consensus. Whichever option we 
> went with, we would also have to ensure that the optimizer didn't do anything 
> bad (as @aaron.ballman pointed out), both now and in the future.


2 sounds better overall. However I don’t like a relaxed flag because it’s weird 
when you have relaxed/normal/pedantic. How do they mix? What if I want format 
warnings, but not “portability” ones. I think we either want to move this to 
pedantic and (as you propose) only warm on `-Wformat` if size or alignment 
don’t match. We can also have a separate `-Wformat-portability` warning where 
we try (and fail) to be helpful.

Please do start a thread on cfe-dev, much appreciated!


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