> On May 9, 2018, at 1:25 PM, Shoaib Meenai via Phabricator > <revi...@reviews.llvm.org> wrote: > > smeenai added a comment. > > 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