[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