[PATCH] implement a -Wformat-pedantic warning

Seth Cantrell seth.cantrell at gmail.com
Thu Feb 26 17:28:01 PST 2015


> On Feb 26, 2015, at 7:24 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> 
> On Thu, Feb 26, 2015 at 4:01 PM, Seth Cantrell <seth.cantrell at gmail.com <mailto:seth.cantrell at gmail.com>> wrote:
> This enables a warning corresponding to gcc's warning of using %p modifiers with non-void* pointers, and to the printf/scanf specs which require void*.
> 
> The warning is on by default for -Weverything users, off by default for others. It can be enabled with -pedantic or -Wformat-pedantic. It's not enabled by -Wformat.
> 
> From a high level, this seems like a good approach to the problem, thanks.
>  
> The patch includes tests and the clang-test target passes with this patch applied to a recent clang revision.
> 
> I used clang-format to format my changes and the patch includes cleanup of a few trailing whitespace issues that were near my changes.
> 
> See also the email thread at: http://lists.cs.uiuc.edu/pipermail/cfe-dev/2015-February/041714.html <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2015-February/041714.html>
> 
> It doesn't seem ideal to call matchesType twice to find out which diagnostic to issue; have you considered returning an enum { Match, NoMatchPedantic, NoMatch }; or similar instead?

That did initially occur to me but I saw the matchesType usages in a few other locations and wanted to keep a compatible API. It wasn't clear, for example, whether the NoMatchPedantic option should convert to true or false of if I should even support the current usage rather than make every use check for each condition explicitly.

I will go back and more carefully review the other usages to see what refactoring I need to do.

Thanks,
Seth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150226/98bb6418/attachment.html>


More information about the cfe-commits mailing list