[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v5 04/46] checkpatch: Recognize IEC binary prefi

From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v5 04/46] checkpatch: Recognize IEC binary prefix definitions
Date: Fri, 29 Jun 2018 15:41:58 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0

On 06/25/2018 07:41 AM, Philippe Mathieu-Daudé wrote:
Do not match the IEC binary prefix as camelcase typedefs.

This fixes:

     ERROR: "foo * bar" should be "foo *bar"
     #310: FILE: hw/ppc/ppc440_uc.c:564:
     +        size = 8 * MiB * sh;
     total: 1 errors, 0 warnings, 433 lines checked

Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
  scripts/checkpatch.pl | 1 +
  1 file changed, 1 insertion(+)

Warning - my perl regex-fu is weak; but I'll give this a shot.

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index e3d8c2cdfc..223681bfd0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -242,6 +242,7 @@ our $UTF8   = qr{
  # There are still some false positives, but this catches most
  # common cases.
  our $typeTypedefs = qr{(?x:
+        (?![KMGTPE]iB)                      # IEC binary prefix (do not match)

I had to (re-)read 'perldoc perlretut', but found what I was looking for. You are adding a zero-length negated lookahead assertion that anything matching the pattern [KMGTPE]iB is not matched to the rest of the regex.

          [A-Z][A-Z\d_]*[a-z][A-Za-z\d_]*     # camelcase
          | [A-Z][A-Z\d_]*AIOCB               # all uppercase
          | [A-Z][A-Z\d_]*CPU                 # all uppercase

and the rest of this regex is picking out any sequence that the code should treat as a typedef. Ergo, with your negative lookahead, we are no longer treating the numeric mixed-case constants as typedefs, and the rest of the script that warns on formatting issues where a typedef appears to be used with a '*' for creating a pointer no longer trigger.

Since that's enough to shut up the false positives you were seeing, then it looks right to me.

Reviewed-by: Eric Blake <address@hidden>

Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]