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